1、源代码的文件名必须与公共类(public)的类名一致,而且一个源代码文件中最多只能有一个公共类(public)
2、注释: 3种
- 行注释 以双斜线 // 开始
- 段落注释 /* 注释内容 */
- 文档注释 /** 注释内容 */
3、数据类型 8种基本类型
- 整型 4 种 : byte(1byte)、 short(2 bytes)、 int (4 bytes)、 long(8 bytes) 均为signed(有符号型)
- 浮点型 2 种:float(4 bytes)、double(8 bytes) 前者有效位6~7位,后者15位
- char类型 : char(2 bytes)
- boolean(1 byte) 只有true和false两种取值,且不能与整型进行转换
**在java编译器中default的整型数据为int类型,所以在给byte、short类型数据赋值时需要进行强制类型转换
**long(长整型)数值有一个后缀L,十六进制前缀0x,八进制前缀0,二进制前缀0b
**float后缀F,double后缀D(F、D大小写均可)
**POSITIVE_INFINITY、NEGTIVE_INFINITY、NAN分别表示正无穷、负无穷和不是一个数字
4、逻辑运算符
- && 按照"短路"方式求值 , eg : expression1 && expression2 , 若expression1为false,则不用计算expression2
- || 按照"短路"方式求值 , eg : expression1 || expression2 , 若expression1为true,则不用计算expression2
- ! 表示逻辑“非”
位运算符
- & | ^ ~ 与、或、异或、非 **& | 不按短路方式计算
- >> << 右移 左移
- >>> 也是右移的意思,与>>的区别在于>>是用符号位填充高位,而>>>是用0填充高位
***无<<<运算符
5、枚举类型
用 enum 自定义枚举类型 eg: enum Size { SMALL , MEDIUM , LARGE , EXTRA_LARGE} ;
Size size = Size.SMALL ; 表示size只能是上述4种尺码中的一种
6、String
java没有内置的字符串类型,而是在标准的类库中提供了一个预定义类,String类为不可变字符串
- 空串与null串的区别
空串“”是长度为0的字符串,是一个java对象,有自己的长度(0)和内容(空)
null串:表示目前没有任何对象与该变量关联
- JDK5.0引入了StringBuilder类,其前身是StringBuffer,其效率稍有些低,但允许采用多线程的方式添加和删除字符操作。
7、从控制台读取数据
- Scanner类 Scanner sc = new Scanner(System.in) ;
String s1 = sc.nextLine() ; //读入一行
String s2 = sc.next() ; //读入一个单词,以空格区分
int i = sc.nextInt() ; //读入一个int类型整数
- Console类 用于读取密码,因为Scanner不适合读取密码,所以专门采用Console类
Console c = new Console(System.in) ;
String ss = c.readLine() ; //读入一行
char[] passwd = c.readPassword() ; //读入密码
从控制台输出( 3种格式 )
- System.out.print("") ;
- System.out.println("") ;
- System.out.printf("%d,%s", age,name) ;
8、控制流程
- 不能在嵌套的两个语句块中申明同名的变量,但是可以在两个并行(平等)的语句块中申明同名的变量
- 选择语句 switch…case、if…else
- 循环语句 while 、 do…while 、 for
- 中断控制流程语句 : 加标签label ,然后 break label ;可以跳出循环到 label 标示的位置
9、大数值:如果基本的整数和浮点数的精度都无法满足要求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。
**遗憾的是不能使用我们熟悉的算术运算符(+、-、/、*、%等),而是需要用到BigInteger、BigDecimal 的add、multiply、subtract、divide、mod (BigDecimal 无此方法)运算。
eg:BigInteger a = BigInteger.valueOf(1000) ;
BigInteger b = BigInteger.valueOf(34567) ;
BigInteger c = a.add(b) ;
BigInteger d = a.multiply(c) ;
10、数组 **数组长度为0 和为null不同
- 申明方法 2种 int[] a ; int a[] ;
- String[] s = new String[10] ; 会创建一个包含10个字符串的数组,所有字符串都为null 。 **一旦创建了数组,就不能再改变其大小,但是可以改变各个元素的内容。
- 匿名数组 new int[] {2,14,35,47,57} ;
- 可以用Arrays的静态方法sort()对数值型数组进行排序(优化的快速排序算法)