- 二进制
每一个0或每一个1,叫做一个bit(比特、位)。
-
字节
最小存储单位。8个bit表示1个字节,记1Byte或1B。
8bit=1B 1024B=1KB …
(B < KB < MB < GB < TB)
-
Java是编译解释型语言
- Java EE(J2EE)企业版
- Java SE(J2SE)标准版
- Java ME(J2ME)微型版
-
Java语言开发环境
- Java虚拟机(JVM)
- Java运行时环境(JRE)
- Java开发工具集(JDK)
JDK包含JRE,JRE包含JDK
-
配置环境变量
JAVA_HOME , Path ,classpath
-
步骤
-
编写源代码,生成.java文件
-
编译源代码,生成.class文件
javac HelloWorld.java 或 javac *.java
-
运行程序
java HelloWorld (后面不写.class)
-
-
注释
单行:// 多行:/*......*/ 文档化:/**.....*/
-
关键字:有特殊含义的单词(51个,全小写,true和false不是)
如public、class、void…
-
标识符
可包含字母、数字、"$" 、"_" ,不能以数字开头
大小写敏感,长度无限制,不与关键字重名,不可是true或false
-
main方法:主方法,固定格式,是程序的入口
public static void main (String[] args){ }
-
类
- Java的基本组成单元,由class声明,类体中包括属性和方法。
- 可以有多个class声明,但是由public修饰的类有且只有一个,且该类名作为文件名。
- 每个应用程序都必须包含一个main()方法,含main()方法的类称为主类。
- 类中除main方法之外的方法都是成员方法
- 所有的方法都必须写在类中
-
输出语句
- System.out 标准输出
- System.err 错误输出
- System.in 标准输入
-
命名规范:
- package(包):1.小写 2.至少有一层目录 3.域名倒置书写
- class(类):1.首字母大写 2. 每个单词首字母大写(大驼峰法)
- Interface(接口):1.首字母大写 2. 每个单词首字母大写
- Method(方法):第一个单词首字母小写,后面每个单词首字母大写(小驼峰法)
- Variable(变量):第一个单词首字母小写,后面每个单词首字母大写
- Constant(常量):全部字母大写,如果是由多个单词组成,由下划线连接
数据类型
基本数据类型11个,引用数据类型3个
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节 | -128~127 (记住) |
短整型 | short | 2个字节 | -32768~32767 |
整型 | int(默认) | 4个字节 | -2的31次方~2的31次方-1(大约21亿) |
长整型 | long | 8个字节 | -2的63次方~2的63次方-1 |
单精度浮点数 | float | 4个字节 | 1.4013E-45~3.4028E+38 |
双精度浮点数 | double(默认) | 8个字节 | 4.9E-324~1.7977E+308 |
字符型 | char | 2个字节 | 0-65535 |
布尔类型 | boolean | 1个字节 | true,false |
-
整数类型(byte,short,int,long)
- 三种表示形式:
- 十进制整数
- 八进制整数,以数字0开头,逢8进位,八进制数中不能出现8
- 十六进制数,以0x或0X开头,0~9,a,b,c,d,e,f
- Java语言的整型常量默认为int型
- 声明long型常量可在后面加l或L
- 三种表示形式:
-
浮点数(float,double)
-
两种表示形式
-
十进制小数
如3.14 314.0 0.314
-
科学计数法,字母e后必须为整数
如3.14e2 3.14E2
-
-
Java浮点型常量默认为double型
-
声明float型常量在后面加f或F
-
-
字符类型(char)
-
字符常量是用 ’ ’ 括起来的单个字符
char c1 = 'A';
-
Java字符采用Unicode编码,每个字符占两个字节,可用十六进制编码表示,可通过下标值获取Unicode编码中的字符(前缀为u表示Unicode编码)
char c2 = '\u0061'; char c3 = 20320;
-
转义字符’ \ ’
\b :退格 ,\n :换行 ,\r :回车 ,\t :制表符(tab),\ \ :反斜杠
-
-
布尔类型(true,false)
-
布尔值不能与整数类型转换
-
举例
boolean b = false; if (b) { //如果值为true,执行这里面的语句,否则执行else } else { }
-
数据类型转换
-
自动类型转换:将取值类型小的类型自动提升为取值类型大的类型
//自动类型转换 byte b=100; short s=b; int i=b; double d = i;
-
强制类型转换:将取值类型大的类型强制转换为为取值类型小的类型
- 有可能会丢失精度和造成数据丢失
- 基本数据类型需要使用强转符:()
- 字符串不能直接转换为基本数据类型,可以通过基本类型的包装类实现把字符串转换成基本类型
- boolean类型不可以转换为其他的数据类型
//强制类型转换
int m=129;
short m1=(short)m;
float f=3.14f;
int n = (int)f; //丢失精度,n=3
自动数据类型提升
-
当数值范围小的数据类型变量与数值范围大的数据类型变量做运算时,自动提升为数值范围大的数据类型
-
byte、short、char类型之间不会相互转换,他们三者在计算时默认首先转换为int类型
-
有很多种类型的数据混合运算时,系统首先自动将所有数据类型转换成数值范围最大的数据类型,然后再计算
-
当数值范围小的数据类型变量与数值范围大的数据类型变量做运算时,自动提升为数值范围大的数据类型
-
byte、short、char类型之间不会相互转换,他们三者在计算时默认首先转换为int类型
-
有很多种类型的数据混合运算时,系统首先自动将所有数据类型转换成数值范围最大的数据类型,然后再计算
-
当把任何的基本数据类型的值和字符串(String)进行连接计算时(+),基本数据类型的值将自动转化为字符串(String)类型