JavaSE前半段基础总结

这篇博客总结了JavaSE的基础知识,包括生成随机数、ArrayList操作、字符串常量池、字符串和数组的方法、继承机制、内部类的分类及使用、finally关键字的应用以及修饰符、Date、DateFormat、StringBuilder的使用,还讨论了装箱拆箱和基本类型与字符串之间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.生成随机数

Random r=new Random();
int num=r.netInt(n)+1;//由[0,n)变成[1,n+1)即[1,n]

2.ArrayList常用方法

 		//向集合中添加元素
        list.add("lj");
        list.add("lbx");
        list.add("cyy");
        list.add("qd");
        list.add("hd");

        //从集合中获取元素:get,利用索引从0开始
        String s = list.get(2);
        System.out.println("2号索引位置的值:"+s);

        //从集合中删除元素:remove,利用索引从0开始
        String s1 = list.remove(4);
        System.out.println("被删除的是:"+s1);

        //获取集合的长度,即元素个数
        int size = list.size();
        System.out.println("集合长度为:"+size);

3.字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中

对于基本类型来说,==是进行数值的比较
对于引用类型来说,==是进行地址值的比较

	    String str1="abc";
        String str2="abc";

        char[] charArray={'a','b','c'};
        String str3=new String(charArray);

        System.out.println(str1==str2);//true
        System.out.println(str1==str3);//false
        System.out.println(str2==str3);//false

4.字符串常用方法

        //获取字符串长度
        int length = "sdasdasfdsfjkwqe".length();
        System.out.println("字符串长度为:"+length);

        //拼接字符串
        String str1="abc";
        String str2="def";
        String str3=str1.concat(str2);
        System.out.println(str3);

        //获取指定索引的单个字符
        String str4="dasdasfdfsas";
        char c = str4.charAt(5);
        System.out.println(c);

        //查找参数字符串在本来字符串当中第一次出现的索引位置,如果没有则返回-1
        String str5="HelloWorld";
        int i = str5.indexOf("llo");
        System.out.println(i);

	    //截取字符串
	    String str1="HelloWorld";
        String str2=str1.substring(5);
        System.out.println(str1);//HelloWorld
        System.out.println(str2);//World

        String str3=str1.substring(4,7);//[4,7)
        System.out.println(str3);//oWo

		//字符串替代
		String str1="How do you do?";
        String str2 = str1.replace("o", "*");
        System.out.println(str2);//H*w d* y*u d*?

		//字符串切割
		String str1="aaa,bbb,ccc";
        String[] strings = str1.split(",");

3.字符串转换

		//转换为字符数组
        char[] chars = "Hello".toCharArray();
        System.out.println(chars[0]);//H
        System.out.println(chars.length);//5

        //转换为字节数组
        byte[] bytes = "abc".getBytes();
        for (byte aByte : bytes) {
            System.out.println(aByte);//97 98 99
        }

4.Arrays

		int[] array={10,20,50};
        //将int数组按照默认格式变成字符串
        String intstr = Arrays.toString(array);
        System.out.println(intstr);//[10,20,50]

		//排序
		int[] array1={5,3,7,8,10,11};
        Arrays.sort(array1);
        System.out.println(Arrays.toString(array1));//[3, 5, 7, 8, 10, 11]

5.继承
在父子继承关系中,如果成员变量重名,则创建子类对象时,访问有两种方式:
1).直接通过子类对象访问成员变量:
等号左边是谁,就优先用谁,没有则向上找。
2).简介通过成员方法访问成员变量:
该方法属谁,就优先用谁,没有则向上找。

6.如何才能知道父类引用的对象,本来是什么子类?

		Animal animal=new Cat();//本来是一只猫
        animal.eat();

        //如果希望调用子类特有方法,需要向下转型
        //判断父类引用animal本来是不是Dog
        if (animal instanceof Dog){
            Dog dog=(Dog) animal;
            dog.methodDog();
        }
        //判断父类引用animal本来是不是Cat
        if (animal instanceof Cat){
            Cat cat=(Cat) animal;
            cat.methodCat();
        }

7.内部类
如果一个事物内部包含另一个事务,那么这就是一个类内部包含另一个类。
例如:身体和心脏的关系,汽车和发动机的关系

分类:
1.成员内部类
2.局部内部类(包含匿名内部类)
注意:内用外可以随意访问,外用内需要内部类对象

使用成员内部类的两种方式:
1.间接方式:在外部类的方法当中使用内部类,main中调用外部类方法
2.直接方式:
外部类名称.内部类名称 对象名=new 外部类名称().new 内部类名称();

public class Body {//外部类
    public class Heart{//成员内部类
        public void beat(){
            System.out.println("心脏跳动");
            System.out.println("我叫"+name);//正确写法
        }
    }
     public void method(){
        System.out.println("外部类的方法");
        Heart heart=new Heart();
        heart.beat();
    }
}

main方法

    public static void main(String[] args) {
        Body body=new Body();//外部类对象
        //在外部类的方法当中使用内部类
        body.method();

        Body.Heart heart=new Body().new Heart();//内部类对象
        heart.beat();
    }

8.finally关键字
final关键字代表最终、不可改变的。
常见用法:
1.可以用来修饰一个类
2.可以用来修饰一个方法
3.可以用来修饰一个局部变量
4.可以用来修饰一个成员变量

a.当final关键字修饰一个类时:
当前这个类不能有任何子类(太监类)

b.当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写
注意事项:
对于类、方法来说,abstract和final关键字不能同时使用,因为矛盾

c.final关键字修饰局部变量,则这个变量就不能进行更改
注意:
对于基本类型来说,不可变说的是变量当中的数值不可变
对于引用类型来说,不可变说的是当中的地址值不可改变

d.如果成员变量使用final关键字修饰,那么这个变量照样是不可变。
1.由于成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值了。
2.对于final的成员变量,要么直接赋值,要么通过构造方法赋值,二者选其一。
3.必须保证类中所有重载的构造方法,最终都会对final的成员变量进行赋值。

9.修饰符
Java中的四种权限修饰符:

publicprotected(default)private
同一个类yesyesyesyes
同一个包yesyesyesno
不同包子类yesyesnono
不同包非子类yesnonono

10.Date

		Date date1=new Date();
        long time = date1.getTime();//与下方sout功能一样
        System.out.println(time);
        System.out.println(System.currentTimeMillis());//获取当前系统从1970年1月1日 00:00:00(英国,中国加8个小时)到现在经历的毫秒

        Date date=new Date();//当前日期
        System.out.println(date);

        date=new Date(0L);//把毫秒转成对应日期
        System.out.println(date);

11.DateFormat

		Date date=new Date();

        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//日期格式化为字符串
        String format = sdf.format(date);
        System.out.println(format);

        Date parse = sdf.parse("2020-11-18 19:14:42");//字符串解析为日期
        System.out.println(parse);

12.StringBuilder
StringBuilder:字符串缓冲区,提高字符串效率
String和StringBuilder可以相互转换:
String–>StringBuilder
可以使用StringBuilder构造方法,例:StringBuilder bu2 = new StringBuilder(“abc”);
StringBuilder–>String
可以使用StringBuilder的toString方法

		//空参构造方法
        StringBuilder bu1 = new StringBuilder();
        System.out.println("bu1:"+bu1);//bu1:
        //添加数据
        StringBuilder bu3 = bu1.append("abc");
        System.out.println("bu3:"+bu3);//bu3:abc
        System.out.println(bu1==bu3);//true

        //使用append无需返回值
        bu1.append("abc");
        bu1.append(2);
        bu1.append(true);
        bu1.append(8.8);
        bu1.append("中");
        System.out.println("bu1:"+bu1);//bu1:abcabc2true8.8中

        //链式编程:方法返回值是一个对象,可以继续调用方法
        bu1.append("qwe").append(1).append("芜湖").append(true);
        System.out.println("bu1:"+bu1);//bu1:abcabc2true8.8中qwe1芜湖true

        //带字符串构造方法,String-->StringBuilder
        StringBuilder bu2 = new StringBuilder("abc");
        System.out.println("bu2:"+bu2);//bu2:abc

        //StringBuilder-->String
        String str = bu2.toString();
        System.out.println("str:"+str);//str:abc

13.装箱与拆箱

		//构造方法,装箱
        Integer int1 = new Integer(1);
        System.out.println(int1);

        Integer int2 = new Integer("1");
        System.out.println(int2);

        //静态方法
        Integer int3 = Integer.valueOf(1);
        System.out.println(int3);

        Integer int4 = Integer.valueOf("1");
        System.out.println(int4);

        //拆箱
        int i = int1.intValue();
        System.out.println(i);

自动装箱与自动拆箱:基本类型和包装类之间可以自动的相互转换

		//自动装箱:直接把int类型的整数赋值包装类
        Integer integer=1;//相当于Integer int1 = new Integer(1);
        //自动拆箱:integer是包装类,无法直接参与运算,可以自动转换为基本数据类型,再进行计算
        integer=integer+1;//相当于integer.intValue()+1

14.基本类型与字符串类型之间的相互转换
基本类型–>字符串
1.基本类型值+"" 最简单的方法(工作中常用)
2.包装类的静态方法toString(参数),不是Object类的toString()方法,重载
3.String类的静态方法valueOf(参数)
字符串–>基本类型
1.使用包装类静态方法parseXXX(“字符串”);

        //基本类型-->字符串
        int i1=100;
        String s1=i1+"";
        System.out.println(s1+200);//100200

        String s2 = Integer.toString(100);
        System.out.println(s2+200);

        String s3 = String.valueOf(100);
        System.out.println(s3+200);

        //字符串-->基本类型
        int i = Integer.parseInt(s1);
        System.out.println(i-10);//90
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值