(后续还会更新完善)
目录
java基础编程
一、基础语法
1、标识符
2、关键字
3、变量、常量和作用域
4、数据类型及类型转换
5、运算符和表达式
6、流程控制语句
二、数组
1、一维数组
2、二维数组
3、数组元素查找
4、数组元素排序
三、面向对象
四、异常
java高级编程
五、多线程
六、常用类
七、枚举、注解
八、集合
九、泛型和file
十、IO流
十一、网络编程
十二、反射
十三、常见面试题
java基础编程
一、基础语法 1、标识符 1.1 定义1.2 规则
- 对变量、方法和类等要素命名时使用的 字符序列,(自己可以起名字的地方放就叫标识符)
1.3 规范
- 构成:26个英文字母大小写 、0 - 9数字、_ 或 $
- 禁止使用:数字开头、含有空格、使用关键字或保留字
- 区分大小写,长度无限制
1.4 标识符举例
- 包名:字母全部小写,一般格式为 【前缀.发起者名.项目名.模块名】
- 类名、接口名:大驼峰命名形式;一个单词 首字母必须大写;多个单词 每个单词的首字母必须大写
- 变量名、方法名:小驼峰命名形式;一个单词全部小写;多个单词第一个单词全部小写,其他单词的首字母大写
- 常量名:所有字母大写;多个单词用 下划线 _ 隔开
- 注意点:为提高阅读性,命名时尽量做到“见名起意”
//包名
package org.springframework.boot.util
//类名(一个单词)
class Student{}
//类名(多个单词)
class SmartStudentTest{}
//接口名(一个单词)
interface Study{}
//接口名(多个单词)
interface GoodStudyTest{}
//变量名(一个单词)
int id;
//变量名(多个单词)
int orderId;
//方法名(一个单词)
void insert(){}
//方法名(多个单词)
void clearAllName(){}
//常量名(一个单词)
public static final int NUMBER = 120;
//常量名(多个单词)
public static final String LOGIN_USER_SESSION_KEY = "current_login_user";
2、关键字
1.1 定义1.2 特点
- java中用以特殊用途而预先占用的单词或标识符称之为关键字
1.3 常用关键字及其分类
- 全部为小写
3、变量、常量和作用域 3.1 变量
- goto、const,注意(自己命名时要避开使用保留字),不常用
变量是程序中最基本的存储单元,由作用域、变量类型、变量名组成,每个变量在使用前必须提前声明。
//声明格式【1】 数据类型 变量名称;
int abs;//无初始化
//声明格式【2】 数据类型 变量名称 = 值;
int ats = 5; //显示初始化
变量分为局部变量、成员变量,成员变量又以是否被static关键字修饰分为实例变量(属性)和类变量(静态属性)
局部变量
【声明格式】:变量类型 变量名称 = 变量值;
【声明位置】: 1.方法或构造器的形参中
2.方法内部
3.代码块内部
【作用范围】:1.方法或构造器的形参中:在方法体和构造器内部任何位置都可以使用
2.方法内部、代码块内部:从定义的地方开始到方法体或代码块结束
【生命周期】 :出生——运行到创建变量语句时
死亡——超过其作用范围
实例变量 (属性)
【声明格式】:访问修饰符 变量类型 变量名称 = 变量值;
【声明位置】: 方法体外、类体内
【作用范围】:在类内部,任何地方都可以访问成员变量
【生命周期】 :出生——new对象的时候,开辟内存空间
死亡——堆内存地址没有引用,变成垃圾,被垃圾回收器回收后
【特点】: 1. new的时候占据内存,实例化后才能调用。
2. 非静态变量赋值不发生冲突。【调用格式】: 先实例化对象,再使用对象名访问
范例: Student stu1=new Student(); //实例化对象
stu1.school="北大"; //对象.属性
3.2常量类变量(静态属性)
【声明格式】:访问修饰符 static 变量类型 变量名称 = 变量值;
【声明位置】: 方法体外、类体内
【作用范围】:在类变量定义之后
【生命周期】 :出生——类加载时,类变量就分配内存空间
死亡——JVM退出。
【特点】: 1. 一声明就被存储在栈中,直接占据内存,可以快速稳定的调用。
2. 全局唯一,在一个运行环境中,静态变量只有一个值,任何一次修改都是全局性的影响。
3. 占据内存,程序中应该包含尽量少的static【调用格式】:1: 使用类名访问(推荐)
范例: Student.school="清华";
2: 使用对象名访问(不推荐)
范例: Student stu1=new Student();
stu1.school="北大";
常量也可称为字面值,即字面显示的值,其本身不会发生变化。 一般用final关键字修饰,分为静态常量、成员常量、局部常量
public class HelloWorld {
// 静态常量
public static final double PI = 3.14;
// 声明成员常量
final int y = 10;
public static void main(String[] args) {
// 声明局部常量
final double x = 3.3;
}
}
3.3变量与常量的区别4、数据类型及类型转换 4.1 数据类型
- 命名规范不一样。默认常量为全大写,而变量为驼峰;
- 修饰符不同。一般常量都会用final修饰,变量不会。而且常量会同时使用static修饰,这是为了要节省内存;
- 常量是指值不会改变(也不能改变)的变量。
八种基本数据类型中,布尔类型(boolen)不参与数据类型转换。
4.2 自动类型转换
- 定义
将数据范围小的数据类型可以直接转换为数据范围大的数据类型的方式叫做自动类型转换
七种基本数据类型(除boolean类型)范围从小到大排序:
byte / short / char ——>int ——>long ——>float ——>double
(byte、short、char这三种类型平级,不能自动类型互转,一般转为int类型计算)
4.3 强制类型转换
- 举例
//byte转为int byte a = 15; int b = a; System.out.println(b);//15 //short转为int short c = 16; int d = c; System.out.println(d);//16 //char转为int char e = 'a'; int f = e; System.out.println(f);//97 //int转为long int g = 133; long h = g; System.out.println(g);//133 //long转为float long i = 4555L; float j = i; System.out.println(j);//4555.0 //float转为double float k = 4.553f; double l =k; System.out.println(l);//4.552999973297119
- 定义
将数据范围大的数据类型强行转换为数据范围小的数据类型的方式叫做强制类型转换,但这样可能会导致数据丢失。
5、运算符和表达式
- 例如
//float强转为int float aa = 15.369f; int bb = (int)aa; System.out.println(bb);//15
运算符包含算术运算符、赋值运算符、比较运算符、逻辑运算符、条件(三目)运算符、位运算符
算数运算符 | +(加),-(减),*(乘),/(除),%(求余),++(自增),--(自减) |
赋值运算符 | =(等于),+=(自加一次等于),-=(自减一次等于),*=(自乘一次等于),/=(自除一次等于),+(字符串连接符) |
比较运算符 | >(大于),<(小于),>=(大于等于),<=(小于等于),==(比较等于),!=(不等于) |
逻辑运算符 | &(按位与),&&(短路与),|(按位或),||(短路或),!(非,即取反) |
三目运算符 | ?:(三目、条件、三元) |
位运算符 | &(按位与),|(按位或),^(异或运算),<<(左移运算符),>>(右移运算符),>>>(无符号运算符),~(非、取反运算符) |
// ++(--)在变量前,先给自己+1或-1,再赋值
int a = 1;
int b = ++a ;
System.out.println(a); //2
System.out.println(b); //2
// ++(--)在变量后,先赋值,再给自己+1或-1
int a = 1;
int b = a++ ;
System.out.println(a);//2
System.out.println(b);//1
int a = 16;
int b = 3;
System.out.println(a % b);//1(16除以3等于5余1)
5.2 赋值运算符//自加(+=)
int a = 1;
a += 2; //a = a + 2
System.out.println(a);//3
//自减(-=)
int a = 3;
a -= 2; //a = a - 2
System.out.println(a);//1
//自乘(*=)
int a = 3;
a *= 2; //a = a * 2
System.out.println(a);//6
//自除(/=)
int a = 4;
a /= 2; //a = a / 2
System.out.println(a);//2
//字符串连接(+)
System.out.println("abc" + "pwd");//abcpwd
5.3 比较运算符5.4 逻辑运算符5.5 三目运算符5.6 位运算符5.7 表达式6、流程控制语句二、数组
1、一维数组2、二维数组3、数组元素查找4、数组元素排序三、面向对象
1、Java类及类的成员2、三大特征3、关键字使用四、异常你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧