導航:首頁 > 編程語言 > java編程實例

java編程實例

發布時間:2022-02-12 06:42:01

java GUI編程的一個完整的實例

Java程序:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test35 extends JFrame implements ItemListener{
private static final long serialVersionUID = 1L;
JComboBox cmbGender;
JLabel lblMessage;

public Test35(){
super("工業09");
String[] arr = new String[];
cmbGender = new JComboBox(arr);
lblMessage = new JLabel("請選擇你的性別");
this.setLayout(new FlowLayout());
this.add(lblMessage);
this.add(cmbGender);
cmbGender.addItemListener(this);
this.setSize(200, 100);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
new Test35();
}

@Override
public void itemStateChanged(ItemEvent e) {
JComboBox cmb = (JComboBox)e.getSource();
if(cmb == cmbGender){
lblMessage.setText(cmb.getSelectedItem().toString());
}
}
}

運行測試:

② 簡單的JAVA編程例子

public class asd{
public static void main(String argv[]){
String a="hello",b="world";
System.out.println(a+' '+b);
}
}

③ Java編程

double [][] m = new double [a][b];

這個是二維的初始化,但具體的每一維,還要初始化的

④ java經典編程案例有哪些

  1. java編程的記事本:

    import java.util.*;
    public class JieChengExample
    {
    public static void main(String args[])
    {
    Scanner input=new Scanner(System.in);
    int n,sum;
    Jiecheng jie=new Jiecheng();
    System.out.print("輸入n的值:");//輸入有幾個階乘相加
    n=input.nextInt();
    sum=0;
    for(int i=1;i<=n;i++)
    {
    sum=sum+jie.jiecheng(i);//這是n個階乘相加
    }
    System.out.println("1!+2!+3!+....+n!的和是:"+sum);
    }
    }
    class Jiecheng
    {
    public int jiecheng(int temp)//算階乘的方法
    {
    int sum=1;
    for(int i=1;i<=temp;i++)
    {
    sum=sum*i; //計算階乘
    }
    return sum;//將一個階乘返回
    }
    }

2.java賽馬游戲:

import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){

}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度為"+red);
System.out.println("green的速度為"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵達終點線");
}
if(green >= 500){
System.out.println("green先抵達終點線");
}
if(green ==500 && red ==500 ){
System.out.println("兩個同時到達");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
S...import java.util.Random;
public class Test {
public static void main(String[] args) {
Competition c = new Competition();
Thread T = new Thread(c);
T.start();
}
}
class Competition implements Runnable{
int red = 0;
int green = 0;
int Speed [] = new int [2];
Competition(){

}
public void run(){
Random r = new Random();
for(int a= 0;a<500;a++){
for(int j = 0;j<2;j++){
Speed[j] = r.nextInt(2);
red = red + Speed[j];
Speed[j] = r.nextInt(2);
green = green + Speed[j];
}
System.out.println("red的速度為"+red);
System.out.println("green的速度為"+green);
while(red >=500 || green>=500){
if(red >=500){
System.out.println("red先抵達終點線");
}
if(green >= 500){
System.out.println("green先抵達終點線");
}
if(green ==500 && red ==500 ){
System.out.println("兩個同時到達");
}
return;
}
}
/* if(red >green){
System.out.println("Redwin"+red);
}
if(red<green){
System.out.println("Greenwin"+green);
}
if(red == green){
System.out.println("equal");*/

JAVA的介紹:

Java是一種可以撰寫跨平台應用程序的面向對象的程序設計語言。Java技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。

⑤ 用java編程

ClassA.java
----
package package1;

public class ClassA {

public void methodA(){
System.out.println("I am methodA() in ClassA.");
}
}

----ClassB.java
package package2;

import package1.ClassA;

public class ClassB {

public static void main(String args[]){
ClassB b = new ClassB();
b.methodB();
}

public void methodB(){
new ClassA().methodA();
System.out.println("I am methodB() in ClassB.");
}
}

------------------
I am methodA() in ClassA.
I am methodB() in ClassB.

⑥ java編程實例

我是Java初學者,我看了你的問題後想了很久終於把它做出來了,你看看吧,方法不是很好,但能滿足你的要求:

import java.util.Scanner;
public class Check2{
int t;
char[] chs = new char[500]; //輸入的句子不能超過500個字元
Check2() {
String str;
Scanner sc = new Scanner(System.in);
System.out.println("請輸入字元串(輸入的字元串不能超過500個字元):");
str = sc.nextLine();
t=str.length();
for (int i = 0; i < t; i ++) {
chs[i] = str.charAt(i); //將輸入的字元串裝入數組
}
}
}

class FuZhi{
char[] letter=new char[52]; //將52個字母(含大小寫)裝入數組
FuZhi(){
char p;
int i=0,j=26;
for(p='A';p<='Z';p++){
letter[i]=p; //這句剛才寫掉了,加上去後程序就完整了
i++; //將A-Z裝入數組
}
for(p='a';p<='z';p++){
letter[j]=p; //將a-z裝入數組,並且從數組的第26個開始裝入(letter[0]-letter[25]已被裝入了字母)
j++;
}
}
}

class display{
public static void main(String[] args){
char temp;
int t;
int[] n= new int [52]; //用於統計每個字元出現的次數

Check2 k =new Check2();
FuZhi m=new FuZhi();

for(int j=0;j<52;j++){
t=0; //令t為0,,並且使上一個字母統計完成後
//將其再次初始化(如A統計完成後,當程序統計B出現的次數時,使B的初始次數為0)
for(int i=0;i<k.t;i++){
if(m.letter[j]==k.chs[i]){ //比較字元是否相同,如相同,使t自加一
t++;
n[j]=t; //數組n來統計每個字母出現的次數,即其中的每一個元素代表一個字母在程序中出現的次數
}
}
}
System.out.println("總共輸入了"+k.t+"個字元:\n"+"其中");
for(int i=0;i<52;i++){
System.out.println("字母"+m.letter[i]+"出現的次數為:"+n[i]+"次");
}
}
}

寫掉了一句「letter[i]=p;」,現在已經補上了,程序可以運行了,你試一下吧!!!

⑦ JAVA編程

public class A{
public static void main(String args[]){
Animal a = new Animal();
a.setColor("red");
a.setAge("5");
System.out.println(a.color+" "+a.age);
}
}

注意源文件名用A.java
調試過程中注意用英文輸入法,因為我是直接在回答的時候寫的,沒有調試

我剛剛調試了一下,沒任何問題!

⑧ 用java編寫一個簡單例子,題目如下

package test;

public class Student {
private String name;
private String id;
private String clazz;
private int age;
private String address;

/**
* sayHello方法
*/
public void sayHello() {
System.out.println("學號為" + this.id + "的同學的具體信息如下:");
System.out.println("姓名:" + this.name);
System.out.println("班級:" + this.clazz);
System.out.println("年齡:" + this.age);
System.out.println("家庭住址:" + this.address);
}

/**
* 測試方法
*
* @param args
*/
public static void main(String[] args) {
// 第一問
Student student = new Student();
student.setAddress("網路知道");
student.setAge(1);
student.setClazz("一班");
student.setId("071251000");
student.setName("lsy605604013");
student.sayHello();

// 第二問
Student studentNew = new Student();
studentNew.setAddress("搜搜知道");
studentNew.setAge(2);
studentNew.setClazz("二班");
studentNew.setId("071251001");
studentNew.setName("lady");
if (student.getAge() < studentNew.getAge())
studentNew.sayHello();
else if (student.getAge() > studentNew.getAge())
student.sayHello();
else
System.out.println("兩人一樣大");

}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getClazz() {
return clazz;
}

public void setClazz(String clazz) {
this.clazz = clazz;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

}

⑨ java編程運算幾個具體實例

三個案例
1、編寫一個方法fun_01(),
判斷一個整數是否包含數字7.

public class Test01{

public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("請輸入數值: ");
int num = sc.nextInt();
System.out.println(func2( num));
}
public static boolean fun_01(int num){
int n;

boolean flag=false;

while(num!=0){

n=num%10;

if(n==7){

flag=true;

break;

}

num /= 10;

}

return flag;
}
}

2.metod2(),
對輸入的任意字元串「1,4,7,13,5,17,9」
轉換為數組元素是整數元素
,需要保存在整形數組中且實現排序輸出「1 4 5 7 9 13 17」
public class Demo {

public static void main(String[] args) {
// String str =("1,4,7,13,5,17,9");
Scanner sc = new Scanner(System.in);
System.out.println("請輸入數字字元串,並用逗號隔開");
String str = sc.next();
metod2(str);
}
public static void metod2(String str){
String array[] = str.split(",");
int p[]=new int[array.length];
for(int i=0;i<array.length;i++){
p[i]=Integer.parseInt(array[i]);
}
//Arrays.sort(p);
for(int i=0;i<p.length-1;i++){
for(int j=0;j<p.length-1-i;j++){
if(p[j]>p[j+1]){
int temp =p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}
for(int i=0;i<p.length;i++){
System.out.print(p[i]+" ");
}

}
}

3,編寫一個方法,傳入數值,列印出金字塔

public static void print(int num){
for(int i=0;i<num;i++){
for(int k=0;k<num-i-1;k++){
System.out.print(" ");
}
for(int j=0;j<2*i+1;j++){
System.out.print("*");
}
System.out.println();
}
}

⑩ java編程

作用你可以看我個你提供的資料;不按虛擬機是不行的.
一、 什麼是Java虛擬機
Java虛擬機是一個想像中的機器,在實際的計算機上通過軟體模擬來實現。Java虛擬機有自己想像中的硬體,如處理器、堆棧、寄存器等,還具有相應的指令系統。

1.為什麼要使用Java虛擬機?

Java語言的一個非常重要的特點就是與平台的無關性。而使用Java虛擬機是實現這一特點的關鍵。一般的高級語言如果要在不同的平台上運行, 至少需要編譯成不同的目標代碼。而引入Java語言虛擬機後,Java語言在不同平台上運行時不需要重新編譯.

Java虛擬機屏蔽了與具體平台相關的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼(位元組碼),就可以在多種平台上不加修改地運行。Java虛擬機在執行位元組碼時,把位元組碼解釋成具體平台上的機器指令執行。

2.誰需要了解Java虛擬機

Java虛擬機是Java語言底層實現的基礎,對Java語言感興趣的人都應對Java虛擬機有個大概的了解。這有助於理解Java語言的一些性質,也有助於使用Java語言。
對於要在特定平台上實現Java虛擬機的軟體人員,Java語言的編譯器作者以及要用硬體晶元實現Java虛擬機的人來說,則必須深刻理解Java虛擬機的規范。
另外,如果你想擴展 Java語言,或是把其它語言編譯成Java語言的位元組碼,你也需要深入地了解Java虛擬機。
3.Java虛擬機支持的數據類型

Java虛擬機支持Java語言的基本數據類型如下:

byte://1位元組有符號整數的補碼 short://2位元組有符號整數的補碼 int://4位元組有符號整數的補碼 long://8位元組有符號整數的補碼 float://4位元組IEEE754單精度浮點數 double://8位元組IEEE754雙精度浮點數 char://2位元組無符號Unicode字元

幾乎所有的Java類型檢查都是在編譯時完成的。上面列出的原始數據類型的數據在 Java執行時不需要用硬體標記。操作這些原始數據類型數據的位元組碼(指令)本身就已經指出了操作數的數據類型,例如iadd、ladd、fadd和dadd指令都是把兩個數相加,其操作數類型特別是int、long、float和double。
虛擬機沒有給boolean(布爾)類型設置單獨的指令。boolean型的數據是由integer指令, 包括integer返回來處理的。boolean型的數組則是用byte數組來處理的。
虛擬機使用IEEE754格式的浮點數。不支持IEEE格式的較舊的計算機,在運行Java數值計算程序時,可能會非常慢。
虛擬機支持的其它數據類型包括:

object//對一個Javaobject(對象)的4位元組引用 returnAddress//4位元組,用於jsr/ret/jsr-w/ret-w指令

注:Java數組被當作object處理。
虛擬機的規范對於object內部的結構沒有任何特殊的要求。在Sun公司的實現中,對 object的引用是一個句柄,其中包含一對指針:一個指針指向該object的方法表,另一個指向 該object的數據。
用Java虛擬機的位元組碼表示的程序應該遵守類型規定。Java虛擬機的實現應拒絕執行違反了類型規定的位元組碼程序。
Java虛擬機由於位元組碼定義的限制似乎只能運行於32位地址空間的機器上。但是可以創建一個Java虛擬機,它自動地把位元組碼轉換成64位的形式。
從Java虛擬機支持的數據類型可以看出,Java對數據類型的內部格式進行了嚴格規定,這樣使得各種Java虛擬機的實現對數據的解釋是相同的,從而保證了Java的與平台無關性和可移植性。
二、 Java虛擬機體系結構

Java虛擬機由五個部分組成:一組指令集、一組寄存器、一個棧、一個無用單元收集堆(Garbage-collected-heap)、一個方法區域。這五部分是Java虛擬機的邏輯成份,不依賴 任何實現技術或組織方式,但它們的功能必須在真實機器上以某種方式實現。

Java指令集
Java虛擬機支持大約248個位元組碼。每個位元組碼執行一種基本的CPU運算,例如,把一個整數加到寄存器,子程序轉移等。Java指令集相當於Java程序的匯編語言。
Java指令集中的指令包含一個單位元組的操作符,用於指定要執行的操作,還有0個或多個操作數,提供操作所需的參數或數據。許多指令沒有操作數,僅由一個單位元組的操作符構成。虛擬機的內層循環的執行過程如下:
do{ 取一個操作符位元組; 根據操作符的值執行一個動作; }while(程序未結束)

由於指令系統的簡單性,使得虛擬機執行的過程十分簡單,從而有利於提高執行的效率。
指令中操作數的數量和大小是由操作符決定的。如果操作數比一個位元組大,那麼它存儲的順序是高位位元組優先。例如,一個16位的參數存放時佔用兩個位元組,其值為: 第一個位元組*256+第二個位元組
位元組碼指令流一般只是位元組對齊的。指令tableswitch和lookup是例外,在這兩條指令內部 要求強制的4位元組邊界對齊。

寄存器
Java虛擬機的寄存器用於保存機器的運行狀態,與微處理器中的某些專用寄存器類似。 Java虛擬機的寄存器有四種:
pc:Java程序計數器。 optop:指向操作數棧頂端的指針。 frame:指向當前執行方法的執行環境的指針。 vars:指向當前執行方法的局部變數區第一個變數的指針。

Java虛擬機
Java虛擬機是棧式的,它不定義或使用寄存器來傳遞或接受參數,其目的是為了保證指令集的簡潔性和實現時的高效性(特別是對於寄存器數目不多的處理器)。所有寄存器都是32位的。


Java虛擬機的棧有三個區域:局部變數區、運行環境區、操作數區。
局部變數區
每個Java方法使用一個固定大小的局部變數集。它們按照與vars寄存器的字偏移量來定址。局部變數都是32位的。長整數和雙精度浮點數占據了兩個局部變數的空間,卻按照第一個局部變數的索引來定址。(例如,一個具有索引n的局部變數,如果是一個雙精度浮點數,那麼它實際占據了索引 n和n+1所代表的存儲空間。)虛擬機規范並不要求在局部變數中的64位的值是64位對齊的虛擬機提供了把局部變數中的值裝載到操作數棧的指令,也提供了把操作數棧中的值寫入局部變數的指令。
運行環境區
在運行環境中包含的信息用於動態鏈接,正常的方法返回以及異常傳播。
動態鏈接
運行環境包括對指向當前類和當前方法的解釋器符號表的指針,用於支持方法代碼的動態鏈接。方法的class文件代碼在引用要調用的方法和要訪問的變數時使用符號。動態鏈接把符號形式的方法調用翻譯成實際方法調用,裝載必要的類以解釋還沒有定義的符號, 並把變數訪問翻譯成與這些變數運行時的存儲結構相應的偏移地址。動態鏈接方法和變數使得方法中使用的其它類的變化不會影響到本程序的代碼。
正常的方法返回
如果當前方法正常地結束了,在執行了一條具有正確類型的返回指令時,調用的方法會得到一個返回值。
執行環境在正常返回的情況下用於恢復調用者的寄存器,並把調用者的程序計數器增加一個恰當的數值,以跳過已執行過的方法調用指令,然後在調用者的執行環境中繼續執行下去。

異常和錯誤傳播
異常情況在Java中被稱作Error(錯誤)或Exception(異常),是Throwable類的子類,在程序中出錯的原因是:①動態鏈接錯,如無法找到所需的class文件。②運行時錯,如對一個空指針的引用

程序使用了throw語句。
當異常發生時,Java虛擬機採取如下措施:
檢查與當前方法相聯系的catch子句表。每個catch子句包含其有效指令范圍,能夠處理的異常類型,以及處理異常的代碼塊地址。
與異常相匹配的catch子句應該符合下面的條件:造成異常的指令在其指令范圍之內 ,發生的異常類型是其能處理的異常類型的子類型。如果找到了匹配的catch子句,那麼系統轉移到指定的異常處理塊處執行;如果沒有找到異常處理塊,重復尋找匹配的catch子句的過程,直到當前方法的所有嵌套的catch子句都被檢查過。
由於虛擬機從第一個匹配的catch子句處繼續執行,所以catch子句表中的順序是很重要的。因為Java代碼是結構化的,因此總可以把某個方法的所有的異常處理器都按序排列到一個表中,對任意可能的程序計數器的值,都可以用線性的順序找到合適的異常處理塊,以處理在該程序計數器值下發生的異常情況。
如果找不到匹配的catch子句,那麼當前方法得到一個"未截獲異常"的結果並返回到當前方法的調用者,好像異常剛剛在其調用者中發生一樣。如果在調用者中仍然沒有找到相應的異常處理,那麼系 統將調用一個預設的異常處理塊。
操作數棧區
機器指令只從操作數棧中取操作數,對它們進行操作,並把結果返回到棧中。選擇棧結構的原因是:在只有少量寄存器或非通用寄存器的機器(如Intel486)上,也能夠高效地模擬虛擬機的行為。
操作數棧是32位的。它用於給方法傳遞參數,並從方法接收結果,也用於支持操作的參數,並保存操作的結果。
例如,iadd指令將兩個整數相加。相加的兩個整數應該是操作數棧頂的兩個字。這兩個字是由先前的指令壓進堆棧的。這兩個整數將從堆棧彈出、相加,並把結果壓回到操作數棧中。每個原始數據類型都有專門的指令對它們進行必須的操作。每個操作數在棧中需要一個存儲位置,除了long和double型,它們需要兩個位置。
操作數只能被適用於其類型的操作符所操作。例如,壓入兩個int類型的數,如果把它們當作是一個long類型的數則是非法的。在Sun的虛擬機實現中,這個限制由位元組碼驗證器強制實行。但是,有少數操作(操作符pe和swap),用於對運行時數據區進行操作時是不考慮類型的。
無用單元收集堆
Java的堆是一個運行時數據區,類的實例(對象)從中分配空間。Java語言具有無用單元收集能力:它不給程序員顯式釋放對象的能力。Java不規定具體使用的無用單元收集演算法,可以根據系統的需求使用各種各樣的演算法。

方法區
方法區與傳統語言中的編譯後代碼或是Unix進程中的正文段類似。它保存方法代碼 (編譯後的java代碼)和符號表。在當前的Java實現中,方法代碼不包括在無用單元收集堆中,但計劃在將來的版本中實現。每個類文件包含了一個Java類或一個Java界面的編譯後的代碼。可以說類文件是 Java語言的執行代碼文件。為了保證類文件的平台無關性,Java虛擬機規范中對類文件的格式也作了詳細的說明。其具體細節請參考Sun公司的Java虛擬機規范
三、 Java類文件(.class文件)

每個類文件包含了一個Java類或一個Java界面的編譯後的代碼。可以說類文件是Java語言的執行代碼文件。為了保證類文件的平台無關性,Java虛擬機規范中對類文件的格式也作了詳細的說明。其具體細節請參考Sun公司的Java虛擬機規范。

四、 Java晶元

由於Java語言是解釋型語言,在一般的通用處理器上其運行速度比起編譯型語言要慢很多。Sun公司為了進一步推廣Java的應用,推出了Java晶元。這些晶元可以說是Java虛擬機的硬體實現。與通用晶元和解釋器構成的虛擬機不同,Java晶元可以直接執行位元組碼,也就是說,位元組碼就是 Java晶元的指令集。這種用硬體實現的虛擬機當然要比軟體模擬的虛擬機的速度要快得多。
Sun公司計劃推出的Java晶元有三種:picoJava,mi-croJava和ultraJava。

picoJava是一個很小的Java內核晶元,其矽片面積只有25mm2。Sun公司准備向其它公司轉讓,以便其它公司可以定製自己的Java晶元,其低端產品的售價估計不到25美元。
microJava是基於picoJava的微控制器晶元,其晶元面積約為50mm2,用於通信設備和其它嵌入式控制設備。Sun公司希望Java晶元可以成為推動Java發展的主要技術之一。

閱讀全文

與java編程實例相關的資料

熱點內容
dns使用加密措施嗎 瀏覽:172
php獨立運行 瀏覽:530
手機sh執行命令 瀏覽:727
雲伺服器的角色 瀏覽:733
單片機頻率比例 瀏覽:840
我的世界伺服器如何關閉正版驗證 瀏覽:504
如何查roid伺服器上的 瀏覽:130
安卓手機主板如何撬晶元不掉電 瀏覽:249
php各個框架的優缺點 瀏覽:101
php1100生成數組 瀏覽:359
以後做平面設計好還是程序員好 瀏覽:552
雲伺服器應用管理 瀏覽:438
飢荒雲伺服器搭建過程 瀏覽:186
可編程式控制制器優點 瀏覽:99
壓縮垃圾車說明書 瀏覽:28
五輪書pdf 瀏覽:802
單片機定時流水中斷系統流水燈 瀏覽:701
u8如何連接伺服器配置 瀏覽:68
動力在於緩解壓力 瀏覽:867
報考科一用什麼app 瀏覽:346