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 对象

基本语法:

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循环 先判断后执行

do{}...while() 先执行后判断

 

定义数组

int【】 number={x,x2,x3,x4};

打印数组

方一

for(int i=0;i<4;i++){

system.out.println(number[i]);

}

方二

//number值赋值给int x

for(int x:number){

system.out.println(x);

 

break;用于强制终止循环;

continue 用在循环语句中 用于终止某次循环过程

 

方法:

return 结束/终止方法

方法重载:

*方法名称必须相同

*参数列表必须不同(个数不同或类型不同,参数排列顺序不同)

方法的返回类型可以相同也可以不同

仅仅返回类型相同不足以成为方法重载

 

数组

int[]={};

int[] a=new int[*];

数组是相同数据类型(数组类型可以为任意类型)的有序集合

数组也是对象,数组元素相当于对象的成员变量

数组长度是确定的,不可变的,如果越界则报:arrayindexoutofboundes

方法创建static 方便调用

 

二维数组

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));

数组排序(升序):Araays.sort();

数组填充: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;

  }
}

 

for (String str : s){} 的理解

只能顺次遍历所有元素,无法实现较为复杂的循环;对于数组,不能方便的访问下标值;对于集合,与使用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,处理潜在异常

尽量去处理异常,切记不要只是简单地调用print stack trace()去打印输出

尽量一加finally语句块去释放占用的资源

 

 

posted @ 2021-09-12 21:04  爱笙灬  阅读(74)  评论(0)    收藏  举报