本文为我开始学习Java的记录2,这是看书(《JAVA 2核心技术 卷Ⅰ》)摘抄的一些基本知识。
主要包括:基本程序、数据类型、变量、运算符、字符串。
都是简单的介绍,没有什么深入讨论。
因为之前学过C++和C#(据说它和Java很像,但是我也只是略知一二),所以和C++一样的,并且耳熟能详的那些知识就不写了。
1.Java的简单知识
Java区分大小写。
程序中的所有内容都必须放在类中。
源代码的文件名必须与公有类的名字相同,并用ClassName.java作为扩展名。
编译代码时,会得到一个包含该类字节码的文件,自动命名为ClassName.class文件。
使用java ClassName运行编译程序时,Java虚拟机将从指定类中的main方法开始执行。
main方法必须是静态的。 Public static void main(String[] args)
2.数据类型
基本数据类型(8种):
数值类型:
整型:byte, short,int, long(依次占据1、2、4、8字节)
浮点型:float,double(分别占据4字节和8字节)
字符类型:
char
char这个类型很神奇,发现里面居然可以放汉字。
布尔类型:
boolean
说明:
Java中所有的数值类型占据的字节数量与平台无关。
Java没有任何unsigned类型。
Java使用16位的Unicode字符集。
转义序列符:\u
Java中boolean类型的值true和false不能与数值类型进行相互转换。
如果没有初始化成员变量就开始使用,那么每个类型的成员变量都有一个默认的初始值:
byte、short、int、long类型的初始值为0
float、double类型的初始值为0.0
char类型的初始值'\u0000'
boolean类型的初始值为false
3.变量
Java中不区分变量的声明与定义。
Java中的变量名:以下划线、字母、$符号开头,并且后跟下划线、字母、$符号以及数字,不能以数字开头。
Java中,利用关键字final声明常量。
例如:
final double INCH=2.5;
关键字final表示这个变量只能被赋值一次,一旦赋值后就不能更改。
可以使用关键字static final设置一个类常量。
4.运算符
除以零:
整数被0除将会产生一个异常。
而浮点数被0除将会得到无穷大或NaN。
位运算符:
&&和||按照短路方式求值,但位运算符&和|不按短路方式进行计算。
>>和<<进行二进制位的右移或左移,当需要构建位模式屏蔽某些位时,使用这两个运算符十分方便。
>>>运算符将用0填充前面的位;>>运算符用符号位填充左边的位,没有<<<运算符。
对移位运算符右侧的参数需要进行模32的运算。
数学函数与常量:
Math类中,包含了各种数学函数。
从JDK 5.0开始,不必在数学方法名和常量名前添加前缀Math,只要在源文件的顶部加上下列内容:
Import static java.lang.Math.*;
5.字符串
标准类库中提供了预定义类String。
字符串由char值序列表示。char数据类型是一个采用UTF-16编码表示Unicode代码点的代码单元。大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。
length方法将返回采用UTF-16编码表示得给定字符串所需要的代码单元数量。
substring方法提取子串,第二个参数为不想复制的第一个代码单元,s.substring(a,b)将包含b-a个代码单元。
不能修改字符串中的字符。不可变字符串的优点:编译器可以将字符串共享。
字符串存放在公共存储池中,字符串变量指向池中相应的位置。
Java字符串不是字符型数组,而是char* 指针。
两个字符串可以用+号拼接。
检测字符串相等:
使用equals方法检测两个字符串是否相等。如果不区分大小写,可以使用equalsIgnoreCase方法。
==运算符只能够确定两个字符串是否被放置在同一个位置。