精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

打飛鳥java代碼6的簡單介紹

用java生成6位驗證碼,由大小寫數字組成,不能重復字符

生成隨機可以用Random類,不能重復可以考慮放在HashSet中,因為HashSet的值是不能重復的,看代碼如下:

站在用戶的角度思考問題,與客戶深入溝通,找到清徐網站設計與清徐網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:網站設計制作、做網站、企業官網、英文網站、手機端網站、網站推廣、主機域名網站空間、企業郵箱。業務覆蓋清徐地區。

public?class?GenerateRandomLetterAndNum?{

public?static?void?main(String[]?args)?{

?SetString?store?=?getletterandnum(6);

?

?printSet(store);

}

public?static?SetString?getletterandnum(int?length)?{

SetString?set?=new?HashSetString();

for?(int?i?=?0;?i??length;?i++)?{

String?value?=?getrandom();

set.add(value);

}

if?(set.size()length)?{?//如果沒有生成6位

String?value?=?getrandom();//繼續調用生成隨機數的方法

set.add(value);

}

return??set;

}

private?static?String?getrandom()?{?//生成隨機字母和數字方法

String?value?=?"";

Random?random?=?new?Random();

int?gen?=?random.nextInt(2);//0、1、2

String?charornum?=?gen?%?2?==?0???"char"?:?"num";

if?("char".equals(charornum))?{

int?temp?=?random.nextInt(2)?%?2?==?0???65?:?97;

int?ascii?=?random.nextInt(26);

value?+=?(char)?(ascii?+?temp);

}?else?if?("num".equalsIgnoreCase(charornum))?{

value?+=?String.valueOf(random.nextInt(10));

}

return?value;

}

public?static??void?printSet(Set?set){?//打印set的方法

?Iterator?iterator?=?set.iterator();

?while?(iterator.hasNext())?{

String?ele?=?(String)?iterator.next();

System.out.print(ele+"?");

}

}

java輸入輸出程序代碼

概述

java程序輸入需要用到Scanner工具類,輸出則使用println

解析

1、輸入:

從鍵盤輸入需要用到java的Scanner這個util包下的工具類

Scanner中輸入是需要對輸入的字符進行分類,int類型為nextint()方法,double類型為nextDouble()方法,字符串類型為next()方法。

#code:

#out:

2、輸出:

java常用的輸出為println

#code:

#out:

除了println()方法之外,java還有print()和printf()兩種輸出方法,

print、println、printf的區別:

print--是函數,可以返回一個值,只能有一個參數。

println 將它的參數顯示在命令窗口,并在結尾加上換行符,將輸出光標定位在下一行的開始。

printf--函數,把文字格式化以后輸出,直接調用系統調用進行IO的,他是非緩沖的。

拓展內容

java 輸入輸出流(I/O)

Java中I/O操作主要是指使用Java進行輸入,輸出操作.?Java所有的I/O機制都是基于數據流進行輸入輸出,這些數據流表示了字符或者字節數據的流動序列。Java的I/O流提供了讀寫數據的標準方法。任何Java中表示數據源的對象都會提供以數據流的方式讀寫它的數據的方法。

Java.io是大多數面向數據流的輸入/輸出類的主要軟件包。此外,Java也對塊傳輸提供支持,在核心庫 java.nio中采用的便是塊IO。

流IO的好處是簡單易用,缺點是效率較低。塊IO效率很高,但編程比較復雜。

Java IO模型 ?:

Java的IO模型設計非常優秀,它使用Decorator模式,按功能劃分Stream,您可以動態裝配這些Stream,以便獲得您需要的功能。例如,您需要一個具有緩沖的文件輸入流,則應當組合使用FileInputStream和BufferedInputStream。

輸入流(Input ?Stream):

程序從輸入流讀取數據源。數據源包括外界(鍵盤、文件、網絡…),即是將數據源讀入到程序的通信通道。

輸出流(output Stream):

程序向輸出流寫入數據。將程序中的數據輸出到外界(顯示器、打印機、文件、網絡…)的通信通道。

求Java代碼

public?class?Test?{

public?static?void?main(String[]?args){

test1();

test2();

}

public?static?void?test1(){

int[]?ascs={(int)'A',(int)'B',(int)'C',(int)'D',(int)'E',(int)'F',(int)'G',

(int)'H',(int)'I',(int)'J',(int)'K',(int)'L',(int)'M',(int)'N',

(int)'O',(int)'P',(int)'Q',(int)'R',(int)'S',(int)'T',

(int)'U',(int)'V',(int)'W',(int)'X',(int)'Y',(int)'Z'};

for?(int?asc:ascs)?{

System.out.println(asc);

}

}

public?static?void?test2(){

char[]?chars={'A','B','C','D','E','F','G',

'H','I','J','K','L','M','N',

'O','P','Q','R','S','T',

'U','V','W','X','Y','Z',

'0','1','2','3','4','5','6','7','8','9'};

for?(char?c:chars)?{

System.out.println(c);

}

}

}

初學java以下代碼每行是什么意思可以給我解釋以下嗎?

這段代碼定義了一個名為Point的類,該類有兩個變量x和y,表示點的橫縱坐標。這個類有兩個方法:

Point(double _x, double _y):構造函數,用來創建一個點對象。該函數接收兩個參數,分別表示該點的橫縱坐標。

getDistance(Point p):計算兩個點之間的距離。該函數接收一個點對象作為參數,返回兩個點之間的距離。

在main函數中,它會創建兩個點對象:p1和origin。p1的橫縱坐標分別為3.0和4.0,origin的橫縱坐標都為0。它會調用p1的getDistance方法,計算p1和原點origin之間的距離。最后,它會打印出這個距離。

如何用maven將java8寫的代碼編譯為java6平臺的

在一般的Java應用開發過程中,開發人員使用Java的方式比較簡單。打開慣用的IDE,編寫Java源代碼,再利用IDE提供的功能直接運行Java 程序就可以了。這種開發模式背后的過程是:開發人員編寫的是Java源代碼文件(.java),IDE會負責調用Java的編譯器把Java源代碼編譯成平臺無關的字節代碼(byte code),以類文件的形式保存在磁盤上(.class)。Java虛擬機(JVM)會負責把Java字節代碼加載并執行。Java通過這種方式來實現其“編寫一次,到處運行(Write once, run anywhere)” 的目標。Java類文件中包含的字節代碼可以被不同平臺上的JVM所使用。Java字節代碼不僅可以以文件形式存在于磁盤上,也可以通過網絡方式來下載,還可以只存在于內存中。JVM中的類加載器會負責從包含字節代碼的字節數組(byte[])中定義出Java類。在某些情況下,可能會需要動態的生成 Java字節代碼,或是對已有的Java字節代碼進行修改。這個時候就需要用到本文中將要介紹的相關技術。首先介紹一下如何動態編譯Java源文件。

動態編譯Java源文件

在一般情況下,開發人員都是在程序運行之前就編寫完成了全部的Java源代碼并且成功編譯。對有些應用來說,Java源代碼的內容在運行時刻才能確定。這個時候就需要動態編譯源代碼來生成Java字節代碼,再由JVM來加載執行。典型的場景是很多算法競賽的在線評測系統(如PKU JudgeOnline),允許用戶上傳Java代碼,由系統在后臺編譯、運行并進行判定。在動態編譯Java源文件時,使用的做法是直接在程序中調用Java編譯器。

JSR 199引入了Java編譯器API。如果使用JDK 6的話,可以通過此API來動態編譯Java代碼。比如下面的代碼用來動態編譯最簡單的Hello World類。該Java類的代碼是保存在一個字符串中的。

01 public class CompilerTest {

02 public static void main(String[] args) throws Exception {

03 String source = "public class Main { public static void main(String[] args) {System.out.println(\"Hello World!\");} }";

04 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

05 StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);

06 StringSourceJavaObject sourceObject = newCompilerTest.StringSourceJavaObject("Main", source);

07 Iterable extends JavaFileObject fileObjects = Arrays.asList(sourceObject);

08 CompilationTask task = compiler.getTask(null, fileManager, null,null, null, fileObjects);

09 boolean result = task.call();

10 if (result) {

11 System.out.println("編譯成功。");

12 }

13 }

14

15 static class StringSourceJavaObject extends SimpleJavaFileObject {

16

17 private String content = null;

18 public StringSourceJavaObject(String name, String content) ??throwsURISyntaxException {

19 super(URI.create("string:///" + name.replace('.','/') + Kind.SOURCE.extension), Kind.SOURCE);

20 this.content = content;

21 }

22

23 public CharSequence getCharContent(boolean ignoreEncodingErrors) ??throws IOException {

24 return content;

25 }

26 }

27 }

如果不能使用JDK 6提供的Java編譯器API的話,可以使用JDK中的工具類com.sun.tools.javac.Main,不過該工具類只能編譯存放在磁盤上的文件,類似于直接使用javac命令。

另外一個可用的工具是Eclipse JDT Core提供的編譯器。這是Eclipse Java開發環境使用的增量式Java編譯器,支持運行和調試有錯誤的代碼。該編譯器也可以單獨使用。Play框架在內部使用了JDT的編譯器來動態編譯Java源代碼。在開發模式下,Play框架會定期掃描項目中的Java源代碼文件,一旦發現有修改,會自動編譯 Java源代碼。因此在修改代碼之后,刷新頁面就可以看到變化。使用這些動態編譯的方式的時候,需要確保JDK中的tools.jar在應用的 CLASSPATH中。

下面介紹一個例子,是關于如何在Java里面做四則運算,比如求出來(3+4)*7-10的值。一般的做法是分析輸入的運算表達式,自己來模擬計算過程。考慮到括號的存在和運算符的優先級等問題,這樣的計算過程會比較復雜,而且容易出錯。另外一種做法是可以用JSR 223引入的腳本語言支持,直接把輸入的表達式當做JavaScript或是JavaFX腳本來執行,得到結果。下面的代碼使用的做法是動態生成Java源代碼并編譯,接著加載Java類來執行并獲取結果。這種做法完全使用Java來實現。

01 private static double calculate(String expr) throws CalculationException {

02 String className = "CalculatorMain";

03 String methodName = "calculate";

04 String source = "public class " + className

05 + " { public static double " + methodName + "() { return " + expr +"; } }";

06 //省略動態編譯Java源代碼的相關代碼,參見上一節

07 boolean result = task.call();

08 if (result) {

09 ClassLoader loader = Calculator.class.getClassLoader();

10 try {

11 Class? clazz = loader.loadClass(className);

12 Method method = clazz.getMethod(methodName, new Class?[] {});

13 Object value = method.invoke(null, new Object[] {});

14 return (Double) value;

15 } catch (Exception e) {

16 throw new CalculationException("內部錯誤。");

17 }

18 } else {

19 throw new CalculationException("錯誤的表達式。");

20 }

21 }

上面的代碼給出了使用動態生成的Java字節代碼的基本模式,即通過類加載器來加載字節代碼,創建Java類的對象的實例,再通過Java反射API來調用對象中的方法。

Java字節代碼增強

Java 字節代碼增強指的是在Java字節代碼生成之后,對其進行修改,增強其功能。這種做法相當于對應用程序的二進制文件進行修改。在很多Java框架中都可以見到這種實現方式。Java字節代碼增強通常與Java源文件中的注解(annotation)一塊使用。注解在Java源代碼中聲明了需要增強的行為及相關的元數據,由框架在運行時刻完成對字節代碼的增強。Java字節代碼增強應用的場景比較多,一般都集中在減少冗余代碼和對開發人員屏蔽底層的實現細節上。用過JavaBeans的人可能對其中那些必須添加的getter/setter方法感到很繁瑣,并且難以維護。而通過字節代碼增強,開發人員只需要聲明Bean中的屬性即可,getter/setter方法可以通過修改字節代碼來自動添加。用過JPA的人,在調試程序的時候,會發現實體類中被添加了一些額外的 域和方法。這些域和方法是在運行時刻由JPA的實現動態添加的。字節代碼增強在面向方面編程(AOP)的一些實現中也有使用。


當前文章:打飛鳥java代碼6的簡單介紹
地址分享:http://m.jcarcd.cn/article/hspopd.html
主站蜘蛛池模板: 国产精品福利电影一 | 国产中文不卡二区 | 精品国产自在91欧 | 国产亚洲精品一二区 | 91精品午夜福利 | 九月婷婷热 | 国产大片亚州一 | 国产制服丝袜你 | 午夜福利免费体验 | 欧洲影视 | 日本高清精 | 国产免费日本高清 | 国产精品秘入口a级 | 91福利电影网站 | 国产在线一区观看 | 午夜a级理| 国产网站免费视频 | 国产精品1线在线 | 青苹果乐园| 国产精品福利导航 | 91精品国产秘原神 | 国语自产拍在线观 | 日韩综合一区 | 国产高清狼人香蕉 | 人与狗性| 国产精品综合一区 | 日本阿v免视频 | 欧美最猛性XXX | 国产91精品电影 | 午夜福利院在线观看 | 日本特级片 | 制服丝袜第一页在线 | 日本免费a视频 | 区二区八戒 | 国产精品第一区 | 果冻传媒mv| 午夜福利92| 国产视频a区 | 日本在线不卡一区 | 国产最新在线观看 | 日本欧美一 |