java基础篇

java基础篇,第1张

java基础篇 1、基本数据类型–String

​ string,即字符串,string类型是个不可变对象。可以理解为一个指针,指向对应的字符串内容,对string类型进行修改等同于将指针指向一个新的string对象,原先的字符串内容依然存在。当程序需要经常改变内容时,最好不要使用string类型,会浪费大量的内存空间。

​ 与string相似功能的有stringbuffer、stringbuilder,与string不同的是,stringbuffer、stringbuilder修改是在自身上修改。

​ stringbuffer:线程安全,速度相对stringbuilder较慢,更适用于多线程情况;

​ stringbuilder:线程不安全,速度更有优势,更适用于单线程;

​ 多数情况下采用stringbuilder。


2、集合容器

​ list:不唯一、有序;-> arraylist

​ map:键值,key-value形式 => map[key]=value; -> hashmap

​ set:唯一、无序,不能含有重复值,类似于数学中的集合。-> hashset


3、OOP面向对象编程–三大特性 3.1 封装

​ 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

​ 具体体现:权限修饰符private,修饰变量时需创建set、get方法。通俗而言,将控制权掌握在自己手中,我可以允许我的数据被读取和修改,但要限制我提供的权限中,你要修改我的数据就要用我提供给你的方式修改。

​ 在代码上,无法通过 对象.变量= 来修改变量值。

​ static关键字:

​ 不依赖于对象,跟随类存在。所有对象共用一个,即创建了多个实例化对象时,每个对象的该变量值相同,若过程中该值被修改,那么所有对象的该变量值也随之改变(方法同理)。推荐**类.变量 **进行修改或赋值。

​ 在JMM内存模型表现上,创建实例化对象时,所有对象都会指向同一个被static的变量/方法堆空间。

​ this关键字:

​ 创建类时可使用:只能在构造方法中调用别的构造方法,并且调用只能在第一行。


3.2 继承

​ 继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。已有的类称为父类、基类,派生的类称为子类。在java语法中只支持单继承。

​ 继承父类,使用super关键字实现对父类成员的引用:

​ 可以调用父类对象中的内容,调用父类构造器(构造方法),在构造方法中使用时默认调用父类无参构造。

​ 创建实例化对象时:先创建父类内容再创建自身内容 ->

父类静态方法 - 自身静态方法 - 父类构造方法 -自身构造方法。

​ 子类可以在继承父类的基础上,重写父类方法,新增功能,详情看下一小点–多态。


3.3 多态

​ 多态是同一个行为具有多个不同表现形式或形态的能力。

​ 产生条件:继承、重写父类方法、创建一个指向子类的父类对象

代码:public class cat extends animal{
    //在继承的基础上可以新增方法,父类无法看到子类的新增功能
	public void shout(){
        System.out.println("喵喵");
    }
}

多态允许将子类类型的指针赋值给父类指针,表现出子类行为
	1、animal a = new cat();
		a.shout();
	在内存表现上,一个父类指针指向了子类对象,也就能够调用子类方法。如下图所示
    2、cat b = new animal();
		b.shout();//无法实现
	在内存表现上,一个子类指针指向了父类对象,那么也就不能够调用子类独有的方法,父类是无法看到子类新增功能的,所能调用的方法仅限于父类含有。
    3、假设改变b的指向:
       b = (cat) a;
	   b.shout();//能够实现
	此时b指向子类对象,能够调用子类独有方法。如下图所示
     4、那么反过来呢,
        a = b;
		b.shout();//无法实现
	a此时指向了父类对象,无法调用子类独有对象


​ instanceof 关键字:

​ 判断是否是类的对象或者其子类对象,在同一继承链使用;

​ 返回类型为bool类型。

​ 可应用于判断是否出现异常而作出相应处理的场景:

​ 开发过程会出现各种各样的异常,利用 instanceof 关键字在出现某一类异常时作出处理。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5576406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存