javaSE基础知识笔记(一)

目录

对象与类

1 构造器(构造方法)的分类

2 this表示当前对象

3 封装——面向对象三大特征之一

3.1 封装的实现步骤

3.2 封装的好处

3.3 JavaBean

3.4 标准JavaBean的要求

4 Scanner类

String&ArrayList——两种常用API

1 String类

1.1 String类特点

1.2 String类创建对象的两种方式

1.3 两种方式的区别(面试常考)

1.4 String常见面试题

1.5 字符串比较,==和equals的区别(面试题)

1.6 String类常用API——遍历、替换、截取、分割

2 ArrayList集合

2.1 数组与集合

2.2 集合创建方法(泛型创建)

2.3 foreach循环遍历集合


对象与类

1 构造器(构造方法)的分类

构造器用于初始化一个类的对象,并返回对象的地址(不能被继承、重写,但可以重载)

  • 无参数构造器(默认存在):初始化对象时,成员变量的数据均采用默认值
  • 任何类定义出来,默认就自带了无参数构造器,写不写都有
  • 有参数构造器:在初始化对象时,同时可以为对象进行赋值
  • 一旦定义了有参数构造器,默认存在的无参数构造器就没有了,此时需要自己写一个无参数构造器
  • 构造器不能被继承、重写,但可以重载

2 this表示当前对象

常用于指向当前类对象的属性,或当前类对象的方法

3 封装——面向对象三大特征之一

隐藏实现细节,暴露出合适的访问方式(合理隐藏、合理暴露)

3.1 封装的实现步骤

  • 一般对成员变量使用private(私有)关键字修饰进行隐藏,private修饰后该成员变量就只能在当前类中访问
  • 提供public修饰的公开的getter、setter方法暴露其取值和赋值

3.2 封装的好处

  • 加强了程序代码的安全性
  • 适当的封装可以提升开发效率,同时可以让程序更容易理解与维护

3.3 JavaBean

  • 可以理解成实体类,其对象可以用于在程序中封装数据

3.4 标准JavaBean的要求

  • 成员变量使用private修饰
  • 提供每一个成员变量对应的getter和setter方法
  • 必须提供一个无参构造器

4 Scanner类

Scanner sc = new Scanner(System.in);//scanner输入对象
String id = sc.next();//接收输入值

String&ArrayList——两种常用API

1 String类

1.1 String类特点

  • java.lang.String类代表字符串,String类定义的变量可以用于指向字符串对象,然后操作该字符串
  • Java程序中的所有字符串文字都是String类的对象
  • String常被称为不可变字符串类型,它的对象在创建后不能被更改
  • String变量每次的修改其实都是产生并指向了新的字符串对象
  • 原来的字符串对象都是没有改变的
  • " "方式给出的字符串对象,在字符串常量池中存储

1.2 String类创建对象的两种方式

  • 方式一:直接使用“ ”定义(推荐方式)String str="aaa";
  • 方式二:通过String类的构造器创建对象

1.3 两种方式的区别(面试常考)

  • 以 " " 方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会在常量池中存储一份
  • 通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中

  • String类不能被继承,是由final修饰的

1.4 String常见面试题

String s1 = new String("abc"); // 实际上创建了两个对象

一个是new String()对象

另一个是"abc"对象,"abc"也是一个String对象,只不过作为参数传入

	String s1 = new String("abc"); // 实际上创建了两个对象
	String s2 = "abc";
	System.out.println(s1 == s2); //fasle
String s1 = "abc";
	String s2 = "ab";
	String s3 = s2 + "c";
	System.out.println(s1 == s3); // false
	String s1 = "abc";
	// Java存在变异优化机制,程序在编译时:"a" + "b" + "c"会直接转成"abc"
	String s2 = "a" + "b" + "c"; 
	System.out.println(s1 == s2); // true

1.5 字符串比较,==和equals的区别(面试题)

  • ==比较基本类型时比较内容,比较引用类型时比较地址
  • equals不能比较基本类型,重写前也比较地址,一般用于重写后比较内容
  • equalsIgnoreCase忽略大小写比较内容

1.6 String类常用API——遍历、替换、截取、分割

❀idea常见代码简写方式

  • psvm快速创建main方法;
  • sout快速创建输出语句;
  • 数组名.fori快速创建数组遍历循环;
  • .var快速给出类名和被赋值的局部变量;

2 ArrayList集合

ArrayList是集合中的一种,它支持索引

2.1 数组与集合

  • 数组的特点
  • 数组定义完成并启动后,类型确定,长度固定
  • 在个数不确定,且要进行增删数据操作时,不便于数组操作
  • 集合的特点
  • 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定
  • 集合非常适合做元素个数不确定,且要进行增删操作的业务场景
  • 集合提供了许多丰富、好用的功能

2.2 集合创建方法(泛型创建)

ArrayList<String> list = new ArrayList<>();//后边的泛型类型可以省略
  • ArrayList:其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型
  • 集合中只能存储引用类型,不支持基本数据类型(int × =>Integer √)
  • ArrayList中常用api

2.3 foreach循环遍历集合

ArrayList<Student> students = new ArrayList<>();

        students.add(new Student("20180302", "叶孤城", 23, "护理一班"));
        students.add(new Student("20180303", "东方不败", 23, "推拿二班"));
        students.add(new Student("20180304", "西门吹雪", 26, "中药学四班"));
        students.add(new Student("20180305", "梅超风", 26, "神经科二班"));
        System.out.printf("%8s%6s%6s%8s\n", "学号", "姓名", "年龄", "班级");
        
        for (Student s : students) {//for-each循环
            System.out.printf("%10s%6s%5d%8s\n", s.getId(), s.getName(), s.getAge(), s.getClassName());
        }
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值