javaee基础
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干类型
3.转换时可能存在内存溢出 或精度问题
4.所有字符本质还是数字
5.Boolean值默认false
6.除了基本类型都是null;
7.取余21%2=1
javaDoc
@author 作者名
@version 版本号
@since 指明需要最早使用jdk版本
@return 返回值情况
@throws 异常抛出情况
cmd汉字文本打开方法
javadoc -encoding UTF-8 -charset UTF-8 xxx.java
基本语法:
Scanner s=new Scanner(System.in);
通过Scanner 类的next()与nextLine()方法获取输入的字符串,在读取前我们一般都要使用hasNext()与hasNextLine()判断是否还有输入的数据
next();
1.一定要读取到有效字符后才可以结束输入
2.对输入有效字符之前遇到的空白 next()会自动将其去掉
3.只有输入有效字符后才能将其后面输入的空白作为分隔符或 结束符
4.next()不能得到带有空格的字符串
nextLine();
1.以enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
2.可以获得空白
//凡是属于io六的类如果不关闭会一直占用资源
关闭
s.close();
if(){}ifelse{}
switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选 //语句 }
while循环 先判断后执行
定义数组
int【】 number={x,x2,x3,x4};
打印数组
方一
for(int i=0;i<4;i++){
system.out.println(number[i]);
}
方二
for(int x:number){
system.out.println(x);
continue 用在循环语句中 用于终止某次循环过程
方法:
return 结束/终止方法
方法重载:
*方法名称必须相同
*参数列表必须不同
方法的返回类型可以相同也可以不同
仅仅返回类型相同不足以成为方法重载
数组
int[]={};
int[] a=new int[*];
数组是相同数据类型(数组类型可以为任意类型)的有序集合
数组也是对象,数组元素相当于对象的成员变量
数组长度是确定的,不可变的,如果越界则报:arrayindexoutofboundes
int[][] sum={{1,2},{3,4}};
for (int i=0;i<sum.length;i++){
for (int j = 0; j <sum[i].length ; j++) {
System.out.println(""+sum[i][j]);
}
打印数组元素:Arrays.toString();
System.out.println(""+Arrays.toString(i));
数组填充:Arrays.fill(i,5);
int[] i={1,2,3,5,4,20,0};
int[] ii=new int[5];
Arrays.sort(i);
Arrays.fill(i,5);
System.out.println(""+Arrays.toString(i));
}
数组遍历(排大小)
import java.security.PublicKey;
import java.time.temporal.Temporal;
import java.util.Arrays;
//数组排大小
public class demo121 {
public static void main(String[] args) {
int[] a={13,2,3,4};
int[] sort=sort(a);//调用完排序后 返回一个排序后的数组a
Arrays.sort(sort);//数组排序
System.out.println( Arrays.toString(sort));//输出
}
public static int[] sort(int[] array){
int Temp=0; //临时变量
for (int i = 0; i <array.length-1 ; i++) {
//外层循环,判断走多少次
for (int j = 0; j <array.length-1-i; j++) {
//内存循环 两两大小比较 如果第一个比第二个大则调换位置
if (array[j+1]>array[j]){
Temp=array[j];
array[j]=array[j+1];
array[j+1]=Temp;
}
}
}
return array;
}
}
只能顺次遍历所有元素,无法实现较为复杂的循环;对于数组,不能方便的访问下标值;对于集合,与使用Interator相比,不能方便的删除集合中的内容(在内部也是调用Interator);除了简单遍历并读取其中的内容外,不建议使用增强的for循环。
面向对象:
静态方法 直接调用
非静态方法: new 类.方法;/ 类 名字=new lei();
构造器:
1.和类名相同
2.没有返回值
作用:
无参构造:1.使用new关键字本质是调用构造器
2.用来初始化值
有参构造:
一旦定义了有参构造无参就必须有定义
注意点:定义有参构造之后,如果使用无 参构造,显示得定义一个无参构造
super注意点:
1.super调用父类的构造方法,必须在构造方法的第一个
2.super必须只能出现在子类的方法或构造方法中
3.super和this不能同时调用构造方法
super跟this
代表对象不同: this:本身调用者这个对象
super:代表父类的应用
前提: this:没有继承也可以使用
super:只能在继承条件才可以使用
构造方法: this();本类的构造
super();父类的构造!
实参形参:
当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
而如果函数的参数是指针类型变量**,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身**。所以在函数体内部可以改变实参的值。
类与对象:
类是一个模板:抽象
对象是一个具体的实例
2.方法
定义 调用
3.对应的引用
引用类型:基本类型(8)
对象是通过引用来操作的:栈--到堆
4.属性:字段field 成员变量
默认初始化:
数字: 0 0.0
char:u000
boolean:false
引用(除了八个基本类型)=null;
修饰符 属性类型 属性名=属性值!
5.对象的创建和使用
必须使用new 关键字创造对象 ,构造器 例:person i=new person();
对象的属性 i.name
对象的方法 i.sleep();
6.类:
静态的属性 属性
动态的行为 方法
封装 继承 多态;
四个优先级:public 公开
private私有
default默认
protected受保护的
object:
在Java中所有的类都直接或默认继承object
继承:
父类的引用可以指向子类,但不能调用子类独有方法
重写:
需要有继承关系,子类重写父类的方法
1.方法名必须相同
2.参数列表列表必须相同
3.修饰符:范围可以扩大但不能缩小:public>protecred>default>private
4.抛出的异常:范围,可以被缩小,但不能扩大:ClassNotfoundException-->exception
重写,子类的方法和父类必须一致;方法体不同!
为什么需要重写:
1.父类的功能,子类不一定需要,或者不一定满足!
只能是public
非静态:才可以重写
多态注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类,有联系 classcastexception类型转换异常
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象
方法不需要重写的情况:
1.static 方法属于类 它不属于实例 static方法只执行一次
输出排序:静态代码块>匿名代码块(一般作用:赋初始值)>构造方法
2.final 常量:通过final修饰的类 不能被继承 没有子类
3.private方法:
静态导入包
抽象类abstract class:
单继承
1.不能new这个抽象类 只能考子类去实现它:约束!
2.抽象类中可以写普通的方法
3.抽象方法必须在抽象类中
//抽象的抽象:约束
//存在意义 抽象出来 提高开发效率
接口:接口中所有定义其实都是抽象类默认public adstract 可以多继承
接口中的常量 public static final
作用:
1.约束
2.定义一些方法,让不同的人实现
3.接口不能被实例化
4.可以实现多个接口implements
5.必须要重写接口中的方法
异常:
try cache final throw throws
异常创建快捷键ctrl+alt+t
处理运行异常时,采用逻辑去合理规避同时辅助try catch处理
在多重catch块后面,也可以加上catch(Exception最大的异常处理)来处理可能会被遗漏的异常
对于不确定的代码,也可以加上try-catch,处理潜在异常
尽量一加finally语句块去释放占用的资源

浙公网安备 33010602011771号