![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础面试
java基础面试
WD技术
这个作者很懒,什么都没留下…
展开
-
java8 stream中的惰性求值
https://blog.csdn.net/qq_32961235/article/details/80080980原创 2022-03-18 09:41:18 · 566 阅读 · 0 评论 -
java Stream
https://baijiahao.baidu.com/s?id=1670011082430225232&wfr=spider&for=pc原创 2022-03-18 09:06:04 · 374 阅读 · 0 评论 -
面向对象的三个特征
封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过原创 2022-03-14 10:45:50 · 65 阅读 · 0 评论 -
常见的检查时异常:
输入输出异常(IOException)、文件不存在异常(FileNotFoundException)、SQL语句异常(SQLException)ClassNotFoundException原创 2022-03-16 08:24:45 · 231 阅读 · 0 评论 -
Java 异常面试题
https://www.cnblogs.com/ljangle/p/10681782.html原创 2022-03-16 08:24:21 · 79 阅读 · 0 评论 -
重写与重载的区别
重写 总结:1.发生在父类与子类之间2.方法名,参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常重载 总结:1.重载Overload是一个类中多态性的一种表现2.重载要求同名方法的参数列表不同(参数类型,参数个数甚至是参数顺序)3.重载的时候,返回值类型原创 2022-03-16 08:24:09 · 79 阅读 · 0 评论 -
产生死锁的条件
1.互斥条件:一个资源每次只能被一个进程使用。2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。3.不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。4.循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。...原创 2022-03-16 08:23:58 · 85 阅读 · 0 评论 -
什么是泛型
// 泛型:就是一种不确定的数据类型。// 比如:ArrayList E就是泛型。 这种不确定的数据类型需要在使用这个类的时候才能够确定出来。// 泛型可以省略,如果省略,默认泛型是Object类型。// 泛型的好处:// 1. 省略了强转的代码。// 2. 可以把运行时的问题提前到编译时期。3、提高了代码的复用性...原创 2022-03-16 08:23:44 · 67 阅读 · 0 评论 -
简述泛型的上界和下界?
有时候希望传入的类型有一个指定的范围,从而可以进行一些特定的操作,这时候就需要通配符了?在Java中常见的通配符主要有以下几种:<?>: 无限制通配符<? extends E>: extends 关键字声明了类型的上界,表示参数化的类型可能是所指定的类型,或者是此类型的子类<? super E>: super关键字声明了类型的下界,表示参数化的类型可能是指定的类型,或者是此类型的父类它们的目的都是为了使方法接口更为灵活,可以接受更为广泛的类型.< ? e原创 2022-03-16 08:23:32 · 431 阅读 · 0 评论 -
a=a+b与a+=b有什么区别吗?
+=操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换.如:byte a = 127;byte b = 127;b = a + b; // 报编译错误:cannot convert from int to byteb += a; ...原创 2022-03-16 08:23:22 · 92 阅读 · 0 评论 -
String,StringBuffer和StringBuilder区别?
String是字符串常量,final修饰;StringBuffer字符串变量(线程安全);StringBuilder 字符串变量(线程不安全).此外StringBuilder和StringBuffer实现原理一样,都是基于数组扩容来实现的.String和StringBuffer的区别?String和StringBuffer主要区别是性能:String是不可变对象,每次对String类型进行操作都等同于产生了一个新的String对象,然后指向新的String对象.所以尽量不要对String进行大量的拼接操原创 2022-03-15 10:51:03 · 315 阅读 · 0 评论 -
Java各类型占字节数
byte 1字节short 2字节int 4字节long 8字节float 4字节double 8字节char 2字节boolean 1字节原创 2022-03-15 10:50:51 · 128 阅读 · 0 评论 -
final有哪些用法?
1、被final修饰的类不可以被继承2、被final修饰的方法不可以被重写3、被final修饰的变量不可以被改变.如果修饰引用,那么表示引用不可变,引用指向的内容可变.4、被final修饰的方法,JVM会尝试将其内联,以提高运行效率5、被final修饰的常量,在编译阶段会存入常量池中....原创 2022-03-15 10:50:38 · 77 阅读 · 0 评论 -
final,finalize()和finally{}的不同之处
三者没有任何相关性,遇到有问着问题的面试官就拖出去砍了吧.final是一个修饰符,用于修饰变量,方法和类.如果 final 修饰变量,意味着该变量的值在初始化后不能被改变.finalize()方法是在对象被回收之前调用的方法,给对象自己最后一个复活的机会.但是该方法由Finalizer线程调用,但调用时机无法保证.finally是一个关键字,与 try和catch一起用于异常的处理,finally{}一定会被执行,在此处我们通常用于资源关闭操作....原创 2022-03-15 10:50:27 · 102 阅读 · 0 评论 -
java 创建对象的几种方式
new创建新对象通过反射机制采用clone机制通过序列化机制1.使用new关键字这是最常见也是最简单的创建对象的方式了。通过这种方式,我们可以调用任意的构造函数(无参的和带参数的)。Employee emp1 = new Employee();2.使用Class类的newInstance方法我们也可以使用Class类的newInstance方法创建对象。这个newInstance方法调用无参的构造函数创建对象。我们可以通过下面方式调用newInstance方法创建对象:Employee原创 2022-03-15 10:50:11 · 372 阅读 · 0 评论 -
父类的静态方法能否被子类重写?
父类的静态方法能否被子类重写?不能.重写只适用于实例方法,不能用于静态方法,而子类当中含有和父类相同签名的静态方法,我们一般称之为隐藏.静态变量和实例变量的区别?静态变量存储在方法区,属于类所有.实例变量存储在堆当中,其引用存在当前线程栈.需要注意的是从JDK1.8开始用于实现方法区的PermSpace被MetaSpace取代了....原创 2022-03-15 10:50:02 · 314 阅读 · 0 评论 -
抽象类必须要有抽象方法吗
不需要,抽象类不一定非要有抽象方法。原创 2022-03-15 10:49:51 · 80 阅读 · 0 评论 -
接口和抽象类的区别
抽象类的意义可以用三句话来概括:1、为其他子类提供一个公共的类型2、封装子类中重复定义的内容3、定义抽象方法,子类虽然有不同的实现,但是定义时一致的接口和抽象类的区别1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象类中可以有普通成员变量,接口中没有普通成员变量3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但原创 2022-03-15 10:49:41 · 556 阅读 · 0 评论 -
多态的好处
消除类型之间的耦合关系可替换性:多态对已存在代码具有可替换性.可扩充性:增加新的子类不影响已经存在的类结构.接口性:多态是超类通过方法签名,向子类提供一个公共接口,由子类来完善或者重写它来实现的.灵活性简化性 多态存在的三个必要条件:1、继承2、重写(子类继承父类后对父类方法进行重新定义)3、父类引用指向子类对象简言之,多态其实是在继承的基础上的...原创 2022-03-14 10:46:03 · 344 阅读 · 0 评论 -
String类中常用的方法
https://blog.csdn.net/lz_1014/article/details/86241850原创 2022-03-06 10:06:13 · 98 阅读 · 0 评论 -
java的Object类有哪些方法
1.getClass方法获取运行时类型,返回值为Class对象2.hashCode方法返回该对象的哈希码值,是为了提高哈希表的性能(HashTable)3.equals方法判断两个对象是否相等,在Object源码中equals就是使用去判断,所以在Object中equals是等价于的,但是在String及某些类对equals进行了重写,实现不同的比较。4.clone方法主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里将参数改变,这时就需.原创 2022-03-06 10:06:24 · 3602 阅读 · 0 评论 -
java里的局部变量为什么不能加static?
局部变量的作用域就是它所在的方法或代码块中,而static的变量刚是定义在类中方法体外,是作为整个类共同使用的,它从类加载开始就存在,而局部变量在它所在的方法或代码块结束后就要被回收的。...原创 2022-02-25 14:08:50 · 709 阅读 · 0 评论 -
内部类的分类及其定义
一、成员内部类代码:public class Test10 { public static void main(String[] args) { /*方式1创建成员内部类对象*/ C c = new C(); C.D d = c.new D(); /*方式2创建成员内部类对象*/ C.D d1 = c.getClassD(); }}class C{ private String name = "外原创 2022-02-25 14:07:40 · 262 阅读 · 0 评论 -
单例模式的五种写法
1、懒汉式,线程不安全顾名思义就是实例在用到的时候才去创建,“比较懒”,用的时候才去检查有没有实例,如果有则返回,没有则新建public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Sin原创 2021-11-10 10:04:56 · 82 阅读 · 0 评论