java基础
0.前言
java特性和优势
- 简单性
- 面向对象
- 可移植性
- 高性能
- 分布式
- 动态性
- 多线程
- 安全性
- 健壮性
java三大版本
- JavaSE :标准版(桌面程序,控制台开发…)
- JavaME :嵌入式开发(手机,小家电…)
- JavaEE :企业级开发(web端,服务器开发…)
JDK,JRE,JVM
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tFZDlI2Q-1621238022817)(assets/JdkJreJvm.webp)]
JDK安装
IDEA
1.java
1.1.java基础
注释
- 单行注释
- 多行注释
- 文档注释
标识符
- 关键字
- 自定义
数据类型
基本类型
数值类型
整数 byte (1B) -128~127
short (2B) -32,768~32,767
int (4B) -2,147,483,648~2,147,483,647
long (8B)
浮点 float (4B)
double (8B)
字符 char (2B)
布尔类型 boolean
引用类型
类
接口
数组
关于浮点
BigDecimal 数学工具类 (避免浮点数比较因误差而出错,应用场景:银行业务)
字符拓展
所有字符本质是数字
Unicode编码 2字节 0~65535
u0000~ uffff : char c = ‘\u0061’
转义字符 \t \n …
类型转换
自动转换:byte, short, char → int → long → float → double
强制转换:
byte b = 2;
int i = (int) b;
1.不能对布尔值转换
2.不能把对象类型转换为不相干类型
3.可能丢失精度
//JDK7 新特性,数字可用下划线分割
int i = 10_0000_0000;
变量,常量,作用域
//type varName [=value] [{,varName[=value]}];
int var;
//常量
final int v;
运算符
//算术
+ - * / % ++ --
//赋值
=
//关系
> < >= <= == != instanceof
//逻辑
&& || !
//位
& | ^ ~ >> << >>>
//条件
?:
//扩展
+= -= *= /=
/**
*instanceof
*二元运算符,左边是对象,右边是类,当对象是右边类或子类所创建的对象时,返回true,否则返回false
*说明:
* 1.类的实例包含本身的实例,以及所有直接或间接子类的实例
* 2.instanceof 左边显示声明的类型与右边操作元必须是同种类或存在继承关系,也就是说需要位于同一个继承树,否则会编译错误
*
*用法:
* 1.左边的对象实例不能是基础数据类型
* 2.左边对象实例和右边类需在同一个继承树上
* 3.null instanceof 任何类 结果都是false
*/
取余运算符
//整数 小数 正负数 均满足:
a % b = a - ((int)(a/b))*b //(int) 准确来说是除去小数部分
移位
a<<1 a*2
a>>1 a/2
包机制
javadoc
1.2.java流程控制
//java 标签
labelName: while(1){
//...
labelName2:while(1){
//...
break labelName; //将跳出外层循环
}
}
Scanner
Scanner scanner = new Scanner(System.in);
顺序结构
选择结构
循环
1.3.方法
1.4.数组
//数组工具类
Arrays
1.5.面向对象
父类,子类同名成员变量
public class SuperClass {
public String name="super";
}
public class SubClass extends SuperClass{
public String name="sub";
// public String superName = super.name;
public static void main(String[] args) {
SubClass sub = new SubClass();
SuperClass sub2 = new SubClass();
System.out.println(sub.name);
System.out.println(sub2.name);
sub2.name = "hello";
System.out.println(sub2.name);
}
}
//程序输出为
sub
super
hello
1.6.异常 Exception
- 检查性异常
- 运行时异常
- ERROR
//异常处理五个关键字
// try catch finally throw throws
//自定义异常
//继承Exception类
class MyException extends Exception{
public MyException(){
super();
}
@Override
public Stirng toString(){
return "your message";
}
}
1.7.常用类和集合框架
常用类
Object
Math
Random
File
包装类
Date SimpleDateFormat Calendar
String
StringBuffer //多线程数据量大,效率低,安全
StringBuilder //单线程数据量大,效率高,不安全
集合框架 //Iterator 迭代器类
Collection
List
ArrayList
LinkedList
Vector
Stack
Set
HashSet
TreeSet
Iterator
Map
HashMap //重点,面试高频问点 JDK1.7:数组+链表,JDK1.8:hash表=数组+链表+红黑树
TreeMap
Collection工具类
IO流
字节流
OutputStream
InputStream
字符流
Reader
Writer
节点流
CharArrayReader
CharArrayWriter
StringReader
StringWriter
PipedOutputStream
Object流
处理流
BufferedInputStream //buffer
BufferedOutputStream
BufferedReader
BufferedWriter
DataInputStream //data
DataOutputStream
InputStreamReader //转换流
OutputStreamWriter
Filter
PrintWriter //print
PrintStream
utputStream
Object流
处理流
BufferedInputStream //buffer
BufferedOutputStream
BufferedReader
BufferedWriter
DataInputStream //data
DataOutputStream
InputStreamReader //转换流
OutputStreamWriter
Filter
PrintWriter //print
PrintStream