# 整形类型byte:-128~127short:-32768~32767int:-2147483648~2147483647long:-9223372036854775808~9223372036854775807# 浮点型# float 数字最后记得加 f,不加默认是 doublefloatf1=3.14f;doubled=1.79e308;# char 类型,都 ' 单引号括起来charc1='a';charc2='中';# String 引用类型,不可变类型# final 声明不可变的变量即常量,后续无法赋值finaldoublePI=3.14;# var 关键字声明变量会自动根据值的类型创建vari=100;//int
# 两者效果一样StringBuildersb=newStringBuilder();varsb=newStringBuilder();# 变量的作用域{...
inti=0;//变量i从这里开始定义
...
{...
intx=1;//变量x从这里开始定义
...
{...
Strings="hello";//变量s从这里开始定义
...
}//变量s作用域到此结束
...
//注意,这是一个新的变量s,它和上面的变量同名,
//但是因为作用域不同,它们是两个不同的变量:
Strings="hi";...
}//变量x和s作用域到此结束
...
}//变量i作用域到此结束
# 整数相除得到精确结果intx=12345/67;//184# 求余数inty=12345%67;//12345÷67的余数是17
# 运算过程中会自动将小类型转成大类型,反方向转可能会溢出导致结果不正确# 如 short 转成 int 再运算shorts=1234;inti=123456;intx=s+i;//s自动转型为int
# 强制类型转换inti=12345;shorts=(short)i;//12345intn1=(int)12.3;//12只保留整数部分
intn2=(int)12.7;//12intn2=(int)-12.7;//-12
intn3=(int)(12.7+0.5);//13intn4=(int)1.2e20;//2147483647# 四舍五入,加 0.5 然后强制转换成 int 类型即可doubled=2.6;intn=(int)(d+0.5);# 字符串使用 + 号连接System.out.println("Hello"+" "+"World!")# 使用 """ 多行模式Strings2=""" Hello second Hello third Hello""";# 在一个文件里可以写多个类,但是只能有一个 public class 类# 手工编译 packagesfindsrc-name"*.java"|xargsjavac-dbin
# 运行包程序java-cp/opt/www/java/tutorial/demo03/package/binmy.Main
# 或者cd/opt/www/java/tutorial/demo03/package
java-cpbinmy.Main
# 查看目录结构cd/opt/www/java/tutorial/demo03/package
tree
.
├──bin
│├──my
││└──Main.class
│├──org
││└──baidu
││└──Student.class
│└──suhua
│└──Person.class
├──hello.jar
└──src
├──my
│└──Main.java
├──org
│└──baidu
│└──Student.java
└──suhua
└──Person.java
# 打成 jar 包# The c option indicates that you want to create a JAR file.# The f option indicates that you want the output to go to a file rather than to stdout.# jar-file is the name that you want the resulting JAR file to have. You can use any filename for a JAR file. By convention, JAR filenames are given a .jar extension, though this is not required.# The -C images part of this command directs the Jar tool to go to the bin directory, and the . following -C bin directs the Jar tool to archive all the contents of that directory.# -C 是告知 jar 工具先进入 bin 目录,. 表示打包该目录的所有文件jar-cvfhello.jar-Cbin.
# 或者cdbin
jar-cvfhello.jar*
# 执行 jar 包java-cp./hello.jarmy.Main
# 修改 mainfest 文件内容# The m option indicates that you want to merge information from an existing file into the manifest file of the JAR file you're creating.jar-cvfmhello.jarmanifest.txt-Cbin.
# manifest.txtMain-Class:my.Main
Built-By:aisuhua
# 执行 jarjava-jarhello.jar
# 字符串Stringstr="suhua123";System.out.println(str);Stringstr2=newString("suhua123");System.out.println(str2);# 内部实际上用字符数组来表示Stringstr3=newString(newchar[]{'s','u','h','u','a','1','2','3'});System.out.println(str3);# for 循环for(Stringvalue:str.split(" ")){System.out.println(value);}Stringarr[]=str.split(" ");for(inti=0;i<arr.length;i++){System.out.println(arr[i]);}# Integer.valueOf()就是静态工厂方法,它尽可能地返回缓存的实例以节省内存。# 创建新对象时,优先选用静态工厂方法而不是new操作符。# 字符串和数字类型互转intx=Integer.parseInt("100");Strings=Integer.toString(100);# 数据的存储和显示要分离# record 关键字用于定义 Data Class# 使用record定义的是不变类;# 可以编写Compact Constructor对参数进行验证;# 可以定义静态方法。# 迭代器List<Integer>list=List.of(1,2,3);for(Integeri:list){System.out.println(i);}Iterator<Integer>iterator=list.iterator();while(iterator.hasNext()){System.out.println(iterator.next());}# 数组的创建方式# 方式1String[]arr=newString[3];arr[0]="A";arr[1]="B";arr[2]="C";# 方式2String[]arr=newString[]{"A","B","C"};# 方式3String[]arr={"A","B","C"};# List 创建的方式# 方式1:每个项类型不确定Listlist=newArrayList();# 方式2List<String>list=newArrayList<String>();# 方式3List<String>list=newArrayList<>();list.add("A");list.add("B");System.out.println(list);# 方式4 list.of()List<String>list=List.of("A","B");