java基础1
1、 Java基础
-
变量:以字母、$、下划线开头。遵循驼峰式命名,见名知意。
-
类型:byte(1字节),short(2字节),int(4字节),
long(8字节),float(4字节),double(8字节),
char(1字节),boolean(1 or 4字节) -
栈:先进后出,存放基础类型数据
-
堆:对象集合数组等,位置随机存放
-
补码:第一位为符号位,1为负数,后面取反,再加一,如1001=-7
-
转义符:’\n’表示回车,’\t’制表符,’\‘表示,’’'表示单引号
-
类型转换:
小类型向大类型可自动转换称“隐式类型转换”
* byte->short->int->long->float->double
* int 和 char在某些情况可以自动相互转换
* 整数转换为浮点型可能会丢失精度
大类型向小类型 称“显式类型转换”,强制类型转换
*int i=129; byte b=byte(byte)i;b=-127边界值与符号位出现误差。
- Scanner:
Scanner scanner=new Scanner(System.in);
String next(); 接收控制台输入的一个字符串
String nextLine(); 接收控制台输入的一个字符串
int nextInt(); 接收控制台输入的一个int类型
double nextDouble(); 接收控制台输入的一个double类型数据
boolean nextBoolean(); 接收控制台输入的一个boolean类型数据
ps:Scanner类没有提供直接输入char类型的方法,可以通过next(),
nextLine(),调用String.charAt(int index);下标从0开始
-
程序错误类型
编译期语法错误,运行期异常,运行期逻辑错误 -
逻辑运算
与运算(长路运算)&
与运算(短路运算)&&
或运算(长路运算)|
或运算(短路运算)||
非运算 !
与运算的优先级大于或运算
-
if判断
if(条件){
语句;
}else if(条件){
语句;
}else{
语句;
} -
switch判断
switch(条件){
case 条件:
语句;
default:
语句;
} -
while循环
while(循环继续的条件表达式){
循环体或者循环内容;
} -
for循环
for(循环变量初始化,循环继续的条件表达式;循环变量值变更){
循环内容;
} -
数组
eg:int[] array=null;//声明
array=new int[3];//实例化开辟内存空间
int lenght=array.length();
int demo[]={1,3,4,5,6,7};//声静态初始化
12 冒泡排序:
for(int i=0;i<demo.length-1;i++){
for(int j=i+1;j<demo.length-1;j++)
if(demo[i]<demo[j]){
int temp=demo[i];
demo[i]=demo[j];
demo[j]=temp;
}
}
- 二维数组
eg:int array[][]=new int[3][3];//实例化开辟内存空间
int demo[][]={{1,2},{5,6}};//声静态初始化
//遍历
for(int i=0;i<demo.length;i++){
for(int j=0;j<demo[i].length;j++)
System.out.print(score[i][j]+" ");
}
System.out.print(score[i][j]+" ");
}
-
String(不可更改) 比较
String str=“hello”;
String str1=“hello”;
System.out.print(str==str1);//false,比较的是地址
System.out.print(str.equals(str1));//true,比较的是内容 -
String常用方法
字符串长度:length()
字符串转换为数组:toCharArray()
从字符串中取出指定位置的字符:charAt()
过滤字符串中存在的字符:indexOf()
字符串与byte数组的转换:getBytes()
去掉字符串的前后空格: trim
从字符串中取出子字符串:subString()
大小写转换:toLowerCase() toUpperCase()
-
StringBuffer(可更改)
StringBuffer s=new StringBuffer();
s.append(“oo”);//添加内容
s.insert(0,“I”);//插入
s.replace(1"love");//替换 -
StringBuilder,单线程速度快
StringBuffer,线程安全 -
异常
常见异常:
数组越界异常:ArrayIndexOutOfBoundsException
数字格式化异常:NumberFormatException
算数异常:ArithmeticException
空指针异常:NullPointerException
捕获异常格式:
try{
异常语句;
}catch(Exception e){
}finally{
一定会执行的代码
}
异常的抛出:
public void tell() throws Exception{}
throw new Exception("***异常!");
自定义异常:
class MyException extends Exception{}
- 课后应了解的设计模式
工厂模式
抽象工厂模式
单例模式
装饰器模式
MVC模式
状态模式
前端过滤器模式
拦截过滤器模式