Java基础知识笔记
  KUV4ycz28uCe 2023年11月22日 22 0

基础知识点 :

所有new出来的东西和数组都在堆当中(先进先出),栈中存放基本数据类型和堆中对象的引用(先进后出)。

1.数据类型转换 从小到大是自动转换

2.数据类型从大到小 需要进行强制类型转换

格式:范围小的类型 范围小的变量名 = (范围小类型) 原本范围大的数据;int

例; int num = (int) 100L;

3.强制类型转换不建议使用!!会发生精度损失。数据溢出。

4.脚本 ----> jshell <----- 的使用 可以直接在cmd 命令行中使用 可以直接运行某些代码

退出 默认 \exit

1.方法重载 over load

多个方法名称一样,但参数列表不一样,类型也可以不同,与名称无关,与返回值类型无关;

只与方法名和参数列表有关(数量)!!

1、java中【数组】的定义方式

//静态数组初始化  
int[] a = new int[]{2, 3, 3, 4, 45, 56, 67, 4, 4, 4,};  
int[] array1 = {3, 3, 4, 5, 5, 6, 6, 6, 6, 6,};  
int[] array2;  
array2=new int[]{34,23,23,34,};  

//动态数组初始化  
int[] array3;       or   int[] array03=new int[5];
array3=new int[5];  

String[] array = new String[10];

//将一个数组1名给另外一个数组2,数组2进行修改数组1也会改变
    相当与把数组1 的地址给数组2
eg;int[] array2=array1;


//未赋值时数组元素默认值;
    整形类型,默认为0;
    浮点型,  默认为0.0;
    字符型,  默认为'\u0000';
    布尔类型  默认为false;
    引用类型  默认为null;


//将数组名作为函数的参数 
    public siatic void print(int[] array){ 方法 };

//使用方法返回值返回数组
    直接将方法名给数组 ;
    int[] array=arrayReturn; 
    arrayReturn方法返回数组名;

2、private关键字的使用

用person关键字进行修饰,在本类中仍然可以随意访问。 但是一旦超出本类范围不能直接访问了

进行修饰,在本类中仍然可以随意访问。 --可以提高代码的安全性----

//person.age=-20;不能直接访问!!!!  
person.setAge(20);//需要间接的访问set+首字母大写成员变量 设置数据;

3、this 的使用

当方法的局部变量和成员变量重名时,根据【就近原则】。【优先使用局部变量】;

this.成员变量名

通过谁调用的方法,谁就是 this

public class Person {  
    String name;//我自己的名字  

    //参数name是对方的名字    
    //成员name是我自己的名字    
    public void sayHello(String name) {  
        System.out.println(name + "你好,我是" + this.name);//成员变量前写this  
    }  

}

4、构--造--方--法

构造方法是专门用来创建对象的方法,new 对象时,就是在调用构造方法。

public 类名称(参数类型 参数名称){

方法体

}------构造方法的名称必须和所在的类的名称完全一样,就连大小写都一样;-----------构造方法不要写返回值类型,连void都不写;--------

构造方法不能写return 一个具体的返回值;

如果没有编写任何构造方法,那么编译器默认赠送一个构造方法,没有参数·方法体 什么都没有都不做;

public Student(){}

一旦编写了至少一个构造方法,编译器将不再赠送

构造方法也可以重载的

5、标准的类(Java Bean)

一个标准的类通常有四个部分组成;

  • 1;所有的成员变量都要使用private关键字修饰
  • 2;为每个成员变量编写一对Get/Set方法;
  • 3;编写一个无参的构造方法;
  • 4;编写一个有参的构造方法;
  • ---------自动补全Get/Set 和构造方法------------
  • coin--generate 或者快捷键 ALT+insert;
  • --------- 一个标准的类也叫Java Bean-------------
    public class Student { //一个标准的学生类 private String name;//姓名
    private int age;//年龄
public Student() {//无参构造方法  
  }  

  public Student(String name, int age) {//全参构造方法  
      this.name = name;  
      this.age = age;  
  }  

  public String getName() {  
      return name;  
  }  
  public void setName(String name) {  
      this.name = name;  
  }  

  public int getAge() {  
      return age;  
  }  
  public void setAge(int age) {  
      this.age = age;  
  }

}

6、Scanner(键盘输入)

public class DemoScanner {  
    public static void main(String[] args) {  

        //2,创建  
        Scanner sc = new Scanner(System.in);//从键盘输入;System.in  

        //3.获取键盘输入的int数字     
        int num = sc.nextInt();  
        System.out.println("输入的int数字是=" + num);  

        //获得字符串输入的字符串  
        String str = sc.next();  
        System.out.println("输入的String字符串是" + str);  

        //获得浮点型数据;  
        float at = sc.nextFloat();  
        System.out.println("输入的浮点型是" + at);  

    }  

}

7、匿名对象

匿名对像就是只有右边的对象 ,没有左边的名字和赋值运算符;

new 类名称();

注意事项:

  • 匿名对象只能使用唯一的一次,下次在用不得不再创建一个新对象;
  • 使用建议:如果确定一个对象【只需要使用唯一的一次】,就可以用匿名对象;
    public class DemoArraymous01 {
    public static void main(String[] args) {
//=========普通使用方式  
      //Scanner sc =new Scanner(System.in);
      //int num =sc.nextInt();
      //=========匿名对象使用方式 
     //int num = new Scanner(System.in).nextInt();
      //System.out.println("输入的数是" + num);
      //=========使用一般写法传入参数;
      //Scanner sc =new Scanner(System.in);
      //methodParam(sc);

      //==========使用匿名对象方式传入参数
      //methodParam(new Scanner(System.in));

      Scanner sc = methodReturn();  // 返回值为  new Scanner(System.in)  
      int num = sc.nextInt();

      int num1=methodReturn().nextInt();//  匿名方法  
      System.out.println("输入的为" + num);  
      System.out.println("输入的为" +num1);

  }  

  public static void methodParam(Scanner sc) {  

      int num = sc.nextInt();  
      System.out.println("输入的是" + num);  
  }  

  public static Scanner methodReturn() {  
      //常规写法  
      //Scanner sc =new Scanner(System.in);
      //return sc
      //匿名对象做返回值 
      return new Scanner(System.in);  
  }

8、Random(生成随机数)

2,创建

Random r =new Random();//小括号当中留空即可

3、使用

获取一个随机的int数字(范围为int所以范围;有正负):

int num=r.nextInt()

获取一个随机的int数字(参数代表范围 左闭右开):

int num=r.nextInt(3) 代表的含义为【0,3);0```2;

public class DemoRandom {  
    public static void main(String[] args) {  
        Random r = new Random();  

        int num = r.nextInt(10);  // 10以内的随机数 ,不包含10;

        System.out.println("随机数"+num);  

    }  

}

9、对象数组

定义一个数组,用来存储3个Person对象;

Person[] array =new Person[3];         Person类型的数组对象

数组缺点:一旦创建,程序运行期间长度不可以发生改变;

//Person 是一个标准的类(Java Bean)

//创建一个长度为3的数组,里面存放Person类型对象  
Person[] array = new Person[3];  

Person one = new Person("奥丁", 200);// new 三个对象   
Person two = new Person("索尔", 150);  
Person three = new Person("海拉", 200);  
//将one中的地址值赋值到数组的0号元素;  
array[0] = one;  
array[1] = two;  
array[2] = three;  
//使用  
System.out.println(array[0].getName()+array[0].getAge());

10、ArrayList的相关

数组长度不可以发生改变;

arrayList 的长度可以随意改变;

对于ArrayList来说;有一个尖括号代表泛型

泛型:也就是装在集合当中的所有元素全都是同一的什么类型

*注意 :泛型只能是引用类型,不能是基本类型;

注意事项;

  • 对于Arrayist集合来说,直接打印得到的不是的地址值,而是内容
  • 如果内容为空 ,得到的是空中括号[];

基本类型 包装类 (引用类型,包装类都位于java.lang包下)byte Byteshort Shortint 【Integer】 !!!特殊long Longfloat Floatdouble Doublechar 【Character】 !!!!特殊boolean Boolean

*从JDK 1.5+开始,支持自动装箱、自动拆箱;

自动装箱 : 基本类型---->包装类型

自动拆箱 : 包装类型---->基本类型

常用方法
【add】向集合当中【添加元素】,参数的类型和泛型一致 #返回值为boolean类型代表添加是否成功:

备注:对于add来说添加动作一定成功;所以返回值可用可不用;多余其他集合来说,add添加动作不一定成功;

【get】从集合中【获取元素】,参数是索引编号,返回值就是对应位置的元素;
【remove】从集合中【删除元素】,参数是索引编号,【返回值就是被删除掉的元素】;
【size】 获取集合中的【尺寸长度】,返回值是集合中包含的元素个数;
ArrayList<String> list = new ArrayList<>();  
System.out.println(list);  

//向集合中添加元素;add  
boolean success = list.add("奥丁");//返回值  
System.out.println(list);  
System.out.println("添加的动作是否成功:" + success);  

list.add("索尔");  
list.add("海拉");  
list.add("钢铁侠");  
list.add("绿巨人");  
System.out.println(list);  

//从集合开始获取元素:get(); 索引值从0开始;  
String name = list.get(2);  
System.out.println(name);  

//从集合删除元素: remove() ;索引值从0开始;  
String whoRemove = list.remove(3);  
System.out.println("被删除的人是"+whoRemove);  
System.out.println(list);  

//获取集合的长度;size();  
int size=list.size();  
System.out.println("集合的长度是:"+size);
【案例】 使用学生标准类作为集合泛型
//Student 为一个标准的学生类

Scanner sc = new Scanner(System.in);  
ArrayList<Student> list = new ArrayList<>();  
//尖括号中的泛型为学生 ,所以 泛型为Student 为一个类包含name age  

for (int i = 0; i < 4; i++) {  
    System.out.print("请输入姓名:");  
    String name = sc.next();  

    System.out.print("请输入年龄:");  
    int num = sc.nextInt();  


    list.add(new Student(name, num));//通过匿名对象,将对象中name age存入集合中;  

}  
for (int i = 0; i < list.size(); i++) {  
    Student stu = list.get(i);  
    System.out.println("姓名:" + stu.getName() + "   " + "年龄:" + stu.getAge());  

}
返回值类型为集合
public static void main(String[] args) {  
    Random r = new Random();  
    ArrayList<Integer> bigList = new ArrayList<>();  

    for (int i = 0; i < 20; i++) {  
        int num = r.nextInt(100) + 1;//范围  
        bigList.add(num);  
    }  

    ArrayList<Integer> smollList = getSmallList(bigList);//创建一个小集合存储返回的小集合;  
    System.out.println("集合中的偶数为:" + smollList.size());  
    for (int i = 0; i < smollList.size(); i++) {  
        System.out.print("  " + smollList.get(i));  
    }  

}  
-------------------------------------------------------------------------------
//这个方法接受大集合参数,返回小集合结果;  !!!集合可以当作方法的参数,也可以当作方法返回值!!!  
public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList) {  
    ArrayList<Integer> smallList = new ArrayList<>();  
    for (int i = 0; i < 20; i++) {  
        int num = bigList.get(i);  
        if (num % 2 == 0) {  
            smallList.add(num);  
        }  
    }  
    return smallList;//返回小集合  
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月22日 0

暂无评论

推荐阅读
KUV4ycz28uCe
作者其他文章 更多