基础程序设计结构

基础程序设计结构

1. 八种基本数据类型,包括四种整型(byte[1],short[2],int[4],long[8]),两种浮点型(float[4], double[8]), 一种字符型(char),一种布尔型(boolean)。整型的范围与运行Java代码的机器无关,方便代码移植。在整型前加0b可以写成二进制数,在Java7之后,还可以在数字字面先加下划线,增强可读性,编译器会去处这些下划线,如1_000_000(或0b1111_0100_1000)。默认的浮点数为double型,float型的数末尾加后缀F。

2. 对char类型来说,在Java中用代码单元来表示一个字符。大部分的字符(经典Unicode代码)用一个UTF-16代码单元来表示,辅助字符用两个代码单元表示。一个字符代表一个代码点,但由于辅助字符的存在,一个代码点可能包含两个代码单元。对一个包含多个char的String来说,可以通过length()方法获取其代码单元数量,通过codePointCount()方法获取其实际的代码点

3. String类是不可变类,字符串被创建出来后就存放在资源池中,编译器可以让字符串共享。但是只有字符串常量是共享的。
比较字符串可以使用“==”和equals()方法。equals()方法判断值相等,“==”判断两个字符串是否放在同一个位置,如果放在同一个位置,那么它们的值必然相等 ,换句话说就是比较两个字符串是否是同一个对象。只要字符串做了一点点改变,比如取子串或者加空串,就不再是同一个对象。

4.由于String的不可变性,导致对一个字符串的一点微小改变都会创建新的对象,对String的操作既费时又浪费空间,于是就有了StringBuilder和StringBuffer类。这两个类都会创建字符串构造器,每次需要添加字符串时就利用append方法。还可以通过toString()方法转变为String。
StringBuffer效率低,但是线程安全,StringBuilder效率高,但线程不安全。在单线程中尽量使用StringBuilder,涉及到多线程要使用StringBuffer。

5.输入输出。
获取控制台的输入需要创建Scanner(java.util包)对象,并将之与System.in相关联,之后就可以调用Scanner的方法进行输入操作。但是由于输入是可见的,Scanner类不适合从控制台读取密码,最好使用Console类。
**为了安全起见,读取的密码要保存在char[]而非String中。对密码处理过后要马上用一个填充值覆盖字符数组元素,而String是不可变的,安全性较差。
读取文件同样要先创建Scanner对象,并与文件关联:
Scanner in = new Scanner(Paths.get("d:\\workspace\\myfile.txt"))(有异常)
写入文件需要构造PrintWriter对象:
PrintWriter out = new PrintWriter("d:\\workspace\\myfile.txt"),文件不存在则创建新文件

6.大数值类:BigInteger和BigDecimal可以处理包含任意长度数字序列的数值。可以使用valueOf()方法将普通数值转换为大数值,但不可以使用基本算术运算符。

7.数组 :数组被创建出来后都会进行默认初始化。数字数组的所有元素默认初始化为0,boolean数组的元素初始化为false,对象数组元素默认初始化为null。数组创建出来后大小就不可变。

8.局部变量在创建出来后不会有默认初始化操作,全局变量才会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值