java复习-基础内容部分

来源:互联网 发布:2016年二胎出生数据 编辑:程序博客网 时间:2024/05/21 07:05

Java有8种基本类型

4种整型:byte(1字节)、short(2字节)、int(4字节)、long(8字节,以L结尾)

2种浮点:float(4字节,以F结尾,6到7位)、double(8字节,以D或者空结尾,15位)

1种布姆:boolean

1种字符:char

*java没有任何无符号类型,比如unsigned

 

十六进制的数值以0x为前缀,八进制以0为前缀,二进制以0b为前缀

Java7开始可以使用下滑线区别开,编译的时候会去掉,例如1_000_000,这样更加方便用户

 

变量的命名:必须由字母或者数字构成,其中,java的字母包括‘A-Z’、‘a-z’、‘_’、‘$’;必须使用字母开头来命名

Java中的常量使用final来修饰,标志着只能赋值一次,并且不能改变值,其中,const也是java保留的关键字,但是没有使用

 

三元表达式:?

Condition ? expression1 :expression2 如果condition为true,计算并返回expression1,否则计算并返回另一个

 

位运算符:与&、或|、非~、异或^;“>>”“<<”将二进制数进行右移或者左移;“>>>”高位用0填充,“>>”用符号位填充高位

 

类型转换:如果低精度的类型转化为高精度的类型,系统会自动帮我们转化,其中char精度低于int;如果高精度的类型转化为低精度的类型,意味可能会发生数据丢失,所以必须使用强制类型转换——()

 

枚举的适用场景:有时候变量的取值只在一个有限的集合内,为了不让变量的取值出现非法,可以使用枚举类型来代替原本的数组类型,比如:

enum Size { SMALL, MEDIUM, LARGE,EXTRA_LARGE };

Size s = Size.MEDIUM; (这种写法和静态变量是一样的,但是在switch中可以不用加前缀

这样的话,s的值就只能在枚举里有的值里选,也可以说是现在自己附有了自己可以选的值

 

字符串:

不是基本类型;自身附带很多的方法

 获取子字符串 .substring(begin,end)

*end需注意,它是表示结束的第一个位置,所以不包含这个位置

*这个方法有个显著的好处,end-begin即为子串的长度

 

字符串一旦赋值,它的内容是不可改变的,但是可以通过别的方式来实现,比如使用获取子字符串加拼接的方式

 

“”与null是不一样的,前者表示一个长度为0的,内容为空的字符串值,后者表示目前还没有任何对象与该变量关联

字符使用.equals判断是否相等,但是null可以使用==判断

 定位具体的char:.charAt(index)

 按字典顺序比较大小:.compareTo(String another),如果小于就是负数,大于就是正数,相等为0

 使用.endsWith(String suffix)判断后缀,一般用于媒体文件的筛选

 使用.indexOf(String str / String str, int fromIndex)放回包含该字符串str的第一个位置/或者从fromIndex开始找后的第一个,如果不包含,就返回-1

 使用.toLowerCase()返回将大写字母变成小写字母后的、新的字符串,.toUpperCase()相对应

 使用.trim()返回去除开头和结尾空格的、新的字符串

 

可以看到,很多方法都是返回新的字符串,这其实很浪费,可以使用StringBuilder解决这个问题,StringBuilder只会在调用.toString()之后才会返回一个字符串,比如拼接,如果使用“+”号拼接,是返回一个新的字符串的,而使用StringBuilder的append方法可以一个个的接上,最后确定了再用.toString()方法返回新的字符串

*StringBuilder与StringBuffer的区别是,后者允许多线程添加或删除

 

Java替换符中,用%开始,用$结束,中间使用从1开始的数表示第几个,比如%2$,表示这是第二个字符串的替换地方,一般在时间格式的转化中,还会在最后添加一些标志,比如s,<,H等

 

对于文件操作,可以使用Paths.get(“文件路径,如果包含反斜杠,要在前面加多一个反斜杠”)获得文件路径类;写入构建一个PrinterWriter,用new和文件路径创建

 

Java中的概念:{}表示一些语句集,表明一些变量的作用域;镶嵌的块中,不能有相同的变量名,因为外部的作用域包含了内部

 

*在循环检测中,不要使用float或者double进行循环结束的判断,因为浮点无法精确地使用二进制表示

 

break 可以带标签,作用是直接跳出重叠的循环层;continue是返回最内层循环的首部

 

对于大数值,使用BigInteger和BigDecimal代替,不过基本操作符无效了,使用它自带的方法进行操作,比如a.add(b)之类的;基本类型转化成大数值型的方法和其他的是一样的,目标类型.valueOf(被转化的对象),也就是说,目标类型提供转化为自己类型的方法

 

数组也是使用new构建的,和List、Map一样,有个对应的数组类Arrays

数组类Arrays自身也带有很多的方法,比如按[ , , , …]格式打印内容,可以使用Arrays.toString(需要打印的数组);再比如数组内容复制,使用Arrays.copyOf(原版数组, 副本数组的长度);再比如使用Arrays.sort(需要排序的数组)进行对数组的排序(内部是优化的快速排序算法),但是不对字符串数组进行排序

 

对于数值数组,默认元素值为0,boolean类型数组默认为false,字符串默认为null

 

数组也提供了返回长度的方法.length()

 

for each,不必为起始和结束的界限而分心,可以直接自动地从头遍历到尾

 

java的main函数的参数是一个字符串数组,这个数组用于在命令行终端输入内容