/**
*可以用来自动创建文档的注释
*/
public class Hello {
//类体
//类体中不允许直接编写Java语句(除声明变量外)
public static void main(String[] args) {
//方法体
//方法体中可以编写多条Java语句,方法体中的语句遵守自上而下的顺序依次执行
//每一条语句均以;(半角)结束
// 向屏幕输出文本
System.out.println("Hello, world!");
/* 多行注释开始
注释内容
注释结束 */
}
} // class定义结束
1.单行注释
//以双杠开头
2.多行注释
/* 多行注释开始
注释内容
注释结束 */
3.自动创建文档的注释
/**
*可以用来自动创建文档的注释
*/
Javadoc 是 Sun 公司提供的一种工具,它可以从程序源代码中抽取类、方法、成员等注释,然后形成一个和源代码配套的 API 帮助文档。也就是说,只要在编写程序时以一套特定的标签注释,在程序编写完成后,通过 Javadoc 就形成了程序的 API 帮助文档。
文档注释位置
①类注释。类注释用于说明整个类的功能、特性等,它应该放在所有的“import”语句之后,在class定义之前。这个规则也适用于接口(interface)注释。
②方法注释。方法注释用来说明方法的定义,比如,方法的参数、返回值及说明方法的作用等。方法注释应该放在它所描述的方法定义前面。
③属性注释。默认情况下,javadoc只对公有(public)属性和受保护属性(protected)产生文档——通常是静态常量。
④包注释。类、方法、属性的注释都直接放到Java的源文件中,而对于包的注释,无法放到Java文件中去,只能通过在包对应的目录中添加一个package.html的文件来达到这个目的。当生成HTML文件时,package.html文件的和部分的内容将会被提取出来当做包的说明。关于包注释,后面还会有更进一步的解释。
⑤概要注释。除了包注释外,还有一种类型的文档无法从Java源文件中提取,就是对所有类文件提供概要说明的文件。同样的,也可以为这类注释单独新建一个HTML文件,这个文件的名字为“overview.html”,它的和标记之间的内容都会被提取。
public class Hello { // 类名为Hello
// ...
} // class定义结束
1.因为Java是面向对象的语言,一个程序的基本单位就是class,class是关键字,上面程序定义的class名字就是Hello,一个class会定义生成一个xxx.class字节码文件。
2.类名要求:
3.驼峰命名法
驼峰命名法是指多个单词组合在一起标识一个特定的含义时,第一个单词全部小写,第二个以及之后的单词首字母大写其余小写的命名规则,其中分为小驼峰法与大驼峰法。以Java为例:
①小驼峰
②大驼峰
4.注意public为访问修饰符,表示该class是公开的。不写public,也能正确编译,但是这个类将无法从命令行执行。一个 .java 文件只能包含一个 public 类,但可以包含多个非 public 类,除了一个 public 类,其它类都只能用 default 修饰。如果有 public类,public 类的类名必须与文件名相同。
5.每一个class中都可以编写main方法,都可以设定程序的入口
public class Hello {
public static void main(String[] args) { // 方法名是main
// 方法代码...
} // 方法定义结束
}
1.在class内部,可以定义若干方法(method),方法定义了一组执行语句,方法内部的代码将会被依次顺序执行。
2.这里的方法名为main
3.void关键字在返回值为空时使用,static关键字表示该方法为静态方法。
4.Java规定,某个类定义的public static void main(String[] args)是Java程序的固定入口方法。(Java入口程序规定的方法必须是静态方法,方法名必须为main,括号内的参数必须是String数组。)Java程序总是从main方法开始执行。
1.什么标识符?
①通俗理解:在java源程序中凡是程序员有权利自己命名的单词都是标识符
②标识符可以标识哪些元素呢?
类名、方法名、变量名、接口名、常量名…
2.标识符命名规则?(不符合规则,程序编译会报错)
①只能由数字、字母、下划线、美元符号组成,不能含有其它符号
②不能由数字开头
③严格区分大小写
④关键字不能做标识符
⑤理论上无长度限制,但最好不要过长
3.标识符命名规范?(不符合规范,程序编译不会报错)
①最好见名知意
②遵守驼峰命名法(详见1-2第3条)
正确 | 错误 |
---|---|
_123Text | 123Text |
HelloWorld | HelloWord! |
public1 | public |
HelloWorld | Hello World |
常见关键字
public
calss
static
void
if
for
while
do
default
byte
short
int
long
float
double
boolean
char
private
protected
switch
true
false
throw
try
catch
…
①10、100整数型字面值
②3.14浮点型字面值
③"abc"字符串型字面值
④’a’字符型字面值
⑤true、false布尔型字面值
没有一个具体的定义,可以理解为在C语言中的常量在Java中看作字面值,因为Java的常量有其他含义。
注:
Java语言中的所有字符串型字面值必须使用双引号括起来,双引号为半角;
Java语言中的所有字符型字面值必须使用单引号括起来,单引号为半角
1.什么是变量?
①变量本质上来说是内存中的一块儿空间,这块空间“有数据类型”、“有名字”、“有字面值”。
②变量包含三个部分:数据类型、名称、字面值【数据】
③变量是内存中存储数据的最基本的单元
2.数据类型的作用?
不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间。
3.变量中存储的具体的“数据”必须和变量的“数据类型”一致,当不一致时编译报错
4.声明/定义变量的语法格式:数据类型 变量名;
5.在Java中,变量必须先定义后使用,在定义变量的时候,可以给它一个初始值。
int x=0;//定义了一个整型int类型的变量,名称为x,初始值为0
//等号=是赋值语句,不是数学意义上的相等,否则无法解释x=x+100
在同一个作用域中,变量不能重名,但是可以重新赋值。
注:在重新赋值时,无需重复定义该变量。
变量必须声明并赋值才能访问,但需注意成员变量没有手动赋值系统会默认赋值,局部变量不会
6.通常访问一个变量包括两种访问形式:
①第一种:读取变量中保存的具体数据(get/获取)
②第二种:修改变量中保存的具体数据(set/设置)
i=20;//set
System.out.println(i);//get
7.变量在一行上可以声明多个,但需注意不能连等
8.变量的作用域简记:出了大括号就不认识了
9.根据变量声明的位置,变量可分为局部变量和成员变量
①局部变量:在方法体中声明的变量
②成员变量:在方法体外声明的变量
Java遵循就近原则
1.数据类型的作用是什么?
程序中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用空间的大小不同,数据类型的作用是指导JVM在运行程序的时候给该数据分配多大的内存空间。
2.Java中的数据类型包括两种
①基本数据类型(四大类八小种)
②引用数据类型
3.字符串"abc"不属于基本数据类型,属于引用数据类型,字符属于基本数据类型,字符串使用双引号,字符使用单引号
4.八种基本数据类型占用空间大小
基本数据类型 | 占用空间大小(单位:字节) | 取值范围 | 默认值 |
---|---|---|---|
byte | 1 | − 2 7 ∼ 2 7 − 1 ( − 128 ∼ 127 ) -2^7\sim2^7-1(-128\sim127) −27∼27−1(−128∼127) | 0 |
short | 2 | − 2 15 ∼ 2 15 − 1 ( − 32768 ∼ 32767 ) -2^{15}\sim2^{15}-1(-32768\sim32767) −215∼215−1(−32768∼32767) | 0 |
int | 4 | − 2 31 ∼ 2 31 − 1 -2^{31}\sim2^{31}-1 −231∼231−1 | 0 |
long | 8 | − 2 63 ∼ 2 63 − 1 -2^{63}\sim2^{63}-1 −263∼263−1 | 0 |
float | 4 | − 2 31 ∼ 2 31 − 1 -2^{31}\sim2^{31}-1 −231∼231−1 | 0.0 |
double | 8 | − 2 63 ∼ 2 63 − 1 -2^{63}\sim2^{63}-1 −263∼263−1 | 0.0 |
boolean | 1 | t r u e / f a l s e true/false true/false | f a l s e false false |
char | 2 | 0 ∼ 2 16 − 1 ( 0 ∼ 65535 ) 0\sim2^{16}-1(0\sim65535) 0∼216−1(0∼65535) | \u0000 |
(在C语言中,true为1,false为0)
5.1byte=8bit(1个比特位表示一个二进制位:1/0)
1 KB=1024 Byte
1MB =1024 KB
1GB =1024 MB
1 TB =1024 GB
6.数字的二进制中有一个二进制位被称为“符号位”,并且这个“符号位”在所有二进制位的最左边。0表示整数,1表示负数。
1.常见使用
2.转义字符
转义字符出现在特殊字符之前,会将特殊字符转换成普通字符
常用 | 含义 |
---|---|
\n | 换行符 |
\t | 制表符 |
\’ | 普通的单引号 |
\\ | 普通的反斜杠 |
\" | 普通的双引号 |
1.java语言中的“整数型字面值”被默认当做int类型来处理,要让这个“整数型字面值”被当作long类型来处理的话,需要在“整数型字面值后面添加l/L,建议使用大写的L。
int i=123;//123这个整数型字面值是int类型,i变量声明的时候也是int类型,int类型的123赋值给int类型的变量i,不存在类型转换
System.out.println(i);
long j=456;//int类型的456赋值给long类型的变量j,存在类型转换
//int类型是小容量,long类型是大容量,小容量可以自动转换成大容量,称为自动转换机制
System.out.println(j);
long x=2147483647;
System.out.println(x);
//long y=2147483648;编译错误:过大的整数
//2147483648被当做int类型的4个字节处理,但这个字面值超出int类型范围
long y=2147483648L;//2147483648字面值一上来就当做long类型来处理,在字面值后面添加L
System.out.println(y);
long x=100L;
/*
int y=x;编译错误,大容量不能直接赋值给小容量
大容量转换成小容量,需要强制类型转换
强制类型转换运行阶段可能会损失精度,所以需谨慎使用
*/
int y=(int)x;
System.out.println(y);
//强转原理:
//原始数据:00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100
//转换之后的数据:00000000 00000000 00000000 01100100
//将左边的二进制砍掉【所有的数据强转都是这样完成的】
byte z=50;//int类型字面值赋值给byte类型,大容量转换为小容量,未使用强制转换,未报错
//在java语言中,当一个整数型字面值没有超出byte类型取值范围时,该变量值可直接赋值给byte的变量
byte z2=192;
//编译报错,192超出了byte类型的取值范围,不能直接赋值给byte类型的变量
short p=32767;//编译通过
//short q=32768;编译报错
2.计算机中存储数据是以补码的形式,求原码的操作其实就是对该补码再求补码。
①如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
②如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
负数求补码:除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1
3.java语言中的整数型字面值有三种表示方式:
①十进制:是一种缺省默认的方式
②八进制:在编写八进制整数型字面值的时候需要以0开始
③十六进制:在编写十六进制整数型字面值的时候需要以0x开始
int a=10;//10
int b=010;//8
int c=0x10;//16
1.float 单精度[4个字节]
double 双精度[8个字节,精度较高]
double的精度太低(相对而言),不适合做财务软件,财务使用精度更高的类型-java.math.BigDecimal,是一种引用数据类型,不属于基本数据类型。
SE类库字节码:E:\JAVA\JDK\jre\lib\rt.jar
SE类库源码:E:\JAVA\JDK\src.zip
2.在java语言中,所有的浮点型字面值,默认被当做double类型来处理。
要想该字面值被当做float类型来处理,需要在字面值后加F/f。
注:double和float在计算机内部二进制存储的时候存储的都是近似值。
1.在java语言中boolean类型只有两个值:true、false,不可以用0和1表示。
2.在底层存储的时候boolean类型占用1个字节,因为实际存储的时候false底层是0,true的底层是1。
3.关于基本数据类型之间的相互转换:
(1)类class
可以是我们创建的,下面是几个JAVA库中的类。
①Object :Object是一个很重要的类,Object是类层次结构的根类,每个类都使用Object作为超类,所有对象(包括数组)都实现这个类的方法。用Object可以定义所有的类
如:
Object object= new Integer(1); 来定义一个Interger类
Integer i=(Integer) object; 在来把这个Object强制转换成Interger类
②String :String类代表字符串,Java 程序中的所有字符串字面值(如"abc")都作为此类的实例来实现。检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本、在该副本中、所有的字符都被转换为大写或小写形式。
③Date :Date表示特定的瞬间,精确到毫秒。Date的类一般现在都被Calendar 和GregorianCalendar所有代替
④Void :Void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。
同时也有对应的Class如:Integer Long Boolean Byte Character Double Float Short
(2)接口interface
例:List:列表 ,此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引 (在列表中的位置)访问元素,并搜索列表中的元素。
(3)数组
存储在一个连续的内存块中的相同数据类型的元素集合。
1.计算机最初只支持英文,最先出现的字符编码是ASCII码
′ a ′ → 97 'a'\rightarrow97 ′a′→97
′ A ′ → 65 'A'\rightarrow65 ′A′→65
′ 0 ′ → 48 '0'\rightarrow48 ′0′→48
编码和解码采用同一套字典/对照表,不会出现乱码。
′ a ′ → 按照 A S C I I 解码 → 01100001 'a'\rightarrow按照ASCII解码\rightarrow01100001 ′a′→按照ASCII解码→01100001
01100001 → 按照 A S C I I 编码 → ′ a ′ 01100001\rightarrow按照ASCII编码\rightarrow'a' 01100001→按照ASCII编码→′a′
2.随着计算机的发展,后来出现了一种编码方式,是国际化标准组织ISO制定的,这种编码方式支持西欧语言,向上兼容ASCII码,仍然不支持中文。这种编码方式是:ISO-8859-1,又被称为latin-1
3.随着计算机向亚洲发展,计算机开始支持中文、日文、韩文等国家文字,其中支持简体中文的编码方式:
GB2312
5.后来出现了一种编码方式统一了全球所有的文字,容量较大,这种编码方式叫做:unicode编码
unicode编码方式有多种具体的实现:
6.java语言采用的是哪一种编码方式呢?
java语言源代码采用的是unicode编码方式,所以"标识符"可以用中文。