Java基础程序设计由于篇幅过长,分为了四篇文章
下面为其他文章的地址:
第二篇:运算符
第二篇:流程控制
第三篇:数组
1.注释
单行注释: //注释内容
用于描述属性或方法内具体功能解释
多行注释:/*注释内容*/
用于描述方法的大致效果功能,以及使用的参数变量
说明注释:/**注释内容*/
用于说明项目的版本,作者,公司,项目名、项目描述等一系列信息
代码示例:
/**
* <p>Title: Person</p>
* @author 111
* @date 2019年8月10日下午12:27:41
* version 1.0
* 描述:
*/
class Person{
//姓名
String name;
//年龄
int age;
/*
* 描述人类的方法
*/
public void show(){
System.out.println("人类是智慧生物");
}
}
2.关键字
定义:被Java语言赋予了特殊含义,用作专门用途的字符串
特点:关键字中所有字母都为小写
用于定义数据类型的关键字 | ||||
---|---|---|---|---|
class | interface | enum | byte | short |
int | long | float | double | char |
boolean | void |
用于定义流程控制的关键字 | ||||
---|---|---|---|---|
if | else | switch | case | default |
while | do | for | break | continue |
return |
用于定义访问权限修饰符的关键字 | ||||
---|---|---|---|---|
private | protected | public |
用于定义类,函数,变量修饰符的关键字 | ||||
---|---|---|---|---|
abstract | final | static | synchronized |
用于定义类与类之间关系的关键字 | ||||
---|---|---|---|---|
extends | implements |
用于定义实例及引用实例,判断实例的关键字 | ||||
---|---|---|---|---|
new | this | super | instanceof |
用于异常处理的关键字 | ||||
---|---|---|---|---|
try | catch | finally | throw | throws |
用于包的关键字 | ||||
---|---|---|---|---|
package | import |
其他修饰符关键字 | ||||
---|---|---|---|---|
native | strictfp | transient | volatile | assert |
用于定义数据类型值的字面值 | 不是关键字,但是可以看作是关键字 | |||
---|---|---|---|---|
true | false | null |
3.保留字
保留用作以后可能会使用作为关键字的单词:goto\const
4.标识符
标识符就是名称,就是每次定义的类、方法、变量的名称,有一定的规则限制
标识符的组成元素:
26个英文字母大小写
数字0-9
符号_和$
标识符规则:
数字不能作为命名开头
不可以使用关键字或保留字进行命名
严格区分大小写达到见名之意
Java中严格区分大小写,长度无限制
标识符不能含有空格
标识符命名规范:
包名:多单词组成时所有字母都小写
类名、接口名:多单词组成时,所有单词的首字母大写
变量名、方法名:多单词组成时,第一个单词的首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写,多单词时每个单词用下划线连接
5.修饰符
修饰符分类:
访问修饰符:default,public,protected,private
非访问权限修饰符:static,final,abstract、volatile和Synchronized
修饰符的作用:
用于修饰类、方法或变量,通常放在语句最前端
示例:
public class className{
private int age;
public static final int num=10;
public static void main(String[] args){
System.out.println("方法体");
}
}
访问权限修饰符:
对类、方法、构造方法和变量进行保护,设置的权限
default(默认的):在同一包中可见,不写访问权限修饰符默认为这个修饰符,接口除外
private(私有的):在同一类中可见,类和接口不能被private修饰,private主要用于隐藏类的实现细节和保护数据,只能由访问器访问
public(公共的):对所有类可见,在不同的包中则需要导包
protected(受保护的):对同一包内的类和所有子类可见,不能修饰类和接口,接口的成员变量和成员方法不能被声明为protected
子类的访问权限必须大于父类访问权限
非访问权限修饰符:
static和final已经说过了,我就不再赘述,稍微提一下吧
static修饰符,用来创建类方法和类变量
final修饰符,用来修饰类,方法和变量
abstract修饰符,用来创建抽象类和抽象方法,被abstract修饰的类不能被实例化,抽象类中的方法可以是抽象方法也可以是非抽象方法,抽象方法没有方法体,需要被继承的子类重写
Synchronized和volatile修饰符,主要用于多线程,Synchronized声明方法只能在同一时间被一个线程访问,volatile修饰成员变量,用于多个线程访问该变量都是同一个值
6.变量
变量是内存中装载数据的小盒子,只能用它来存放和取数据
分类:
* 局部变量:定义在方法中
* 类变量(静态变量):由static修饰的成员变量
* 成员变量(非静态变量):定义在类中方法外的变量
变量的使用
1. 定义:数据类型 变量名=变量值
2. 说明:
① 变量必须先声明后使用
② 变量都定义在其作用域范围内,在作用域内有效
③ 同一个作用域内,不可以声明两个同名的变量
存储单元
1. bit(位):存储设备的最小信息单元
2. byte(字节):存储单元的最小单位,也称为B
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
数据类型
-
基本数据类型:
-
整型
整型分类 数据范围 字节数 默认值 byte -128~127 1(1符号位+7尾数) 0 short -32768~32767 2(1符号位+15尾数) 0 int -2147483648~2147483647 4(1符号位+31尾数) 0 long -263~263-1 8(1符号位+63尾数) 0 -
浮点型
浮点型分类 数据范围 字节数 默认值 float(单精度) -3.403* 1038~3.403* 1038 4(1符号位+8指数位+23尾数) 0.0 double(双精度) -1.798* 10308~1.798* 10308 8(1符号位+11指数位+52尾数) 0.0 -
字符型
字符型分类 数据范围 字节数 默认值 char \u0000~\uffff 2 ‘\u0000’ 布尔型分类 数据范围 字节数 默认值 boolean false\true 1 false
通过二进制编码解释,为什么整型都是从-n-1~n,因为编码中0和-0是两个值,而Java中将-0作为了-n-1
-
知识扩展
原码:数字的二进制编码,最高位为符号位,0表示整数,1表示负数
反码:正数的反码是本身,负数的反码是除符号位以外,其他位依次取反
补码:正数的补码是本身,负数的补码是反码的末位+1
举个栗子:
127 | -128 |
---|---|
原码:0111 1111 | 原码:1000 0000 |
反码:0111 1111 | 反码:0111 1111 |
补码:0111 1111 | 补码:1000 0000 |
-
引用数据类型:
-
类(class)
-
接口(interface)
-
数组(array)
-
类型转换
见VariableTest1.java
自动类型转换
* 大范围的数据类型 变量=小字节数据类型值
* byte\char\short-->int-->long-->float->double
* 当byte、char、short三种类型的变量做运算时,结果为int
强制类型转换
* 范围小的数据类型 变量 = (范围小的数据类型) 范围大的数据类型值;
7.常量
概念:不可变的数据量,常量又叫字面值常量
常量分类:
* 整型常量
整型常量在内存中默认占32位,如果超出长度则需要类型转换成long类型,在内存中占64位
长整型在数字后加L或小写l即可
* 实型常量
实型常量默认在内存中占64位,是默认double类型的值,在数据取值范围许可的情况下尽量转换成单精度float,在内存中占32位,单精度在数字后面加f或F即可
* 布尔型常量
布尔型常量只有true或false
* 字符型常量
使用''引起来的单个字符叫字符常量(''只允许引一个字符,转义字符例外),单引号不可与双引号混用,如'e','E'等
''可以写转义字符,如'\n'
* 字符串型常量
其实理论上来说,字符串都是常量,因为String类是final修饰的,这个以后再说
使用" "引起来的字符叫字符串常量,也可以写转义字符"\n"