![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java知识总结
文章平均质量分 67
奇幻岛
这个作者很懒,什么都没留下…
展开
-
百度一面+二面+三面
不得不说,效率好高,爱了爱了百度一面8.24七点1、自我介绍,问大几了,能不能提前来实习2、介绍你的项目,这里我说了好久,口干舌燥3、怎么测的,思想,遇到的问题balabalabalabala,4、你都遇到了什么问题,怎么解决的5、数据库相关,写语句,介绍事务和索引,为什么要有索引?分类?6、内存泄漏和内存溢出?这儿我说错了7、Java的垃圾回收机制,为什么分新生代和老生代?怎样触发老生代8、进程和线程的区别?你是怎么理解的9、你都用过什么数据库,有哪些了解,10、写代码:判断有无环原创 2020-08-26 19:36:47 · 5562 阅读 · 2 评论 -
腾讯一面+二面+三面(凉经)
菜鸡秋招面的第三家公司,话不多说,来记录啦感觉面试官人都很好,笔芯腾讯一面1、自我介绍,介绍完以后能感觉到面试官是一个很有条理的人,整体分了四个部分(代码考察、基础知识部分、项目深度沟通、问答环节)2、代码是一个字符串解压缩,思路说出来了,代码没写出来,时间有些不允许,面试官还给了提示,看来我的代码能力太菜3、https和http,我讲了不同还有https的加密过程,4、七层模型介绍,tcp和udp的不同5、gc相关,我把我知道的gc相关全说了,说了挺多6、牛客系统文字聊天设计测试用例,说完原创 2020-08-21 15:09:51 · 3809 阅读 · 2 评论 -
作业帮一面+二面+hr面
这是本菜鸡秋招面的第二家公司,写面经来记录自己的秋招成长史,等以后工作了回过头来看看,自己还面过这么多公司,哈哈哈哈,就当记录生活吧作业帮一面面经1.自我介绍然后讲项目背景设计等等2.域名方面,怎么生成的,输入地址发生了什么3.多进程多线程,进程线程区别4.多进程并发怎么实现,有什么问题,这个不会5.多线程会有哪些问题,怎么解决6.讲一下索引和事物,7.你的图片服务器项目中,怎么解决脏读幻读问题的8.死锁的条件以及避免死锁的办法9.写数据库语句,学生表啥的10.linux指令11.讲原创 2020-08-21 14:46:03 · 3265 阅读 · 3 评论 -
融360一面+二面+hr面
这是本菜鸡秋招面的第一家公司,感觉面试官人都很好,每场面试体验都挺好,记录一下面试经历,可能有的问题记录的有遗漏,一面1、万年不变自我介绍2、介绍项目(背景、实现、框架、尽量介绍的详细一点吧)3、怎么测试的,发现了什么问题,在针对项目具体提一些问题4、linux命令介绍,我把知道的都说了一遍,然后面试官就出了场景让写命令5、数据库语句,具体出了个题写语句,查询表A中id字段重复出现三次以上6、public private protected权限区别7、介绍list、map、set,我就又把知原创 2020-08-13 16:00:04 · 2611 阅读 · 26 评论 -
【HashMap】关于HashMap的一些常见问题探究
一、HashMap和Hashtable历史叙旧都知道JAVA中有三大集合List , Set, Map,前两个继承自Collection接口,Map是一个独立的接口,今天主要谈谈Map下的HashMap;Map有三个实现类HashMap、TreeMap和HashTableHashtable比HashMap出现的要早,在java一开始发布时就提供的键值映射的数据结构,也就是Key-Value模型;而HashMap产生于JDK1.2,早不代表好,现在主要用的还是HashMap。能被广泛使用还是有它的优势的,原创 2020-07-09 21:13:46 · 751 阅读 · 1 评论 -
那些JAVA变量的常见问题,你快忘wan了没
结论先放这儿,要的请带走一、JAVA当中的基本类型有哪些?答:byte(1),char(2),short(2),int(4 java中int型变量就占四个字节,和操作系统无关),long(8),float(4),double(8)在、,boolean( 有些 JVM 的实现是占1个字节,有的占1个比特位,没有明确规定)和引用类型,他们占的字节数在括号后标注在引用类型比如接口、类、数组、String、枚举二、JAVA当中的变量有哪些?答:大致分为成员变量和局部变量,成员变量又分为实例成员变量和静原创 2020-07-06 20:46:59 · 199 阅读 · 0 评论 -
由一道题引发对indexOf()和lastIndexOf()的思考
这道题是给一个字符串,找出第一个只出现一次的字符,比如str=aabbcddeed,答案找出来肯定是c,实现代码如下for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); if (str.indexOf(ch) == str.lastIndexOf(ch)) return i; }如果熟悉字符串方法的话,这道题代码非常的简洁原创 2020-06-26 01:07:57 · 219 阅读 · 0 评论 -
【List全家桶】之ArrayList&&LinkedList&&vector
前置知识泛型Arraylist实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高,但因为地址连续, ArrayList要移动数据,所以插入和删除操作效率比较低。它是线程不安全的怎样定义Arraylist//默认创建一个ArrayList集合List list = new ArrayList<>();//创建一个初始化长度为100的ArrayList集合List initlist = new ArrayList<>(100);//将其他类原创 2020-06-18 22:42:03 · 177 阅读 · 0 评论 -
快来,看完它再也不怕面试被问GC了(*^▽^*)
文章目录一、jvm内存模型二、GC概念和垃圾判定1、 什么是GC?2、为什么要有GC?3、怎么判定垃圾4、四种引用介绍5、回收方法区三、 垃圾回收算法1、 标记-清除算法2 、复制算法(新生代回收算法)3 、标记-整理算法(老年代回收算法)4、 分代收集算法四、 七种垃圾收集器五、 java 内存分配与回收以及 Minor GC 和Major GC一、jvm内存模型我的另一篇博客关于内存模型进行过详细介绍,欢迎查看JVM内存模型详解堆得分区这里需要了解一下,下面垃圾算法会用到。就是把堆分为伊甸区和S原创 2020-06-16 16:09:52 · 312 阅读 · 1 评论 -
反射三连问what?why?HOW?
反射的概念Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到,那么我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。个人理解:就是你在过地铁安检时你包里的东西安检小姐姐都可以看到。反射相关的类class代表类的实体,在运行的java程序中表示类和接口Field代表类的成员变量/类的属性C原创 2020-06-15 18:09:47 · 250 阅读 · 0 评论 -
PrepareStatement和Statement的联系和区别
联系:PrepareStatement继承自Statement,两者都是接口,内部都要建立Socket连接,效率都不是很高。区别主要有以下几点1、性能方面PreparedStatement有预编译的过程,已经绑定sq|,之后无论执行多少遍,都不会再去进行编译。而statement不同,如果执行多少遍,则相应的就要编译多少遍sql,所以preStatement的效率比Statement要高一些Statement statement = conn.createStatement();PreparedS原创 2020-06-15 15:33:43 · 958 阅读 · 0 评论 -
JAVA中对象的初始化顺序
java对象初始化顺序:静态的优先,把静态的执行完轮到父亲的普通东西和构造方法,然后才到儿子的普通东西和构造方法1、父类静态代码块,父类静态成员变量(同级按顺序执行)2、子类静态代码块,子类静态成员变量(同级按顺序执行)3、父类普通代码块,父类普通成员变量(同级按顺序执行)4、父类构造方法5、子类普通代码块,子类普通成员变量(同级按顺序执行)6、子类构造方法特别说明:静态内容只在类加载时执行一次,之后不再执行。默认调用父类的无参构造方法,可以在子类构造方法中利用super指定调用父类的哪个原创 2020-06-15 10:53:32 · 260 阅读 · 0 评论 -
JAVA异常小结
异常的定义和分类定义:顾名思义,异常就是不正常,你的程序没有达到你预期的结果,你想让程序输出hello world,它直接没跑通或者啥也没输出,这就是产生异常了,我们其实已经见过好多异常了(下面会有具体例子)分类人犯错都有个严重程度,同样的计算机也有,先看一下这张异常体系图。JAVA在异常这方面有个老祖宗是Throwable类,两个儿子就是Exception和Error。Error是那个不争气的儿子,一出现说明直接就没救了,属于非受查异常,(可能因为再检查也没救了吧)Exception的儿子比较多原创 2020-06-11 20:28:11 · 267 阅读 · 0 评论 -
你想知道关于引用都在这儿了(分类以及解引用)
数据类型分为基本数据类型和引用数据类型变量有3种形态1、局部变量/形参:存放在栈帧中(栈)2、属性:存放在对象中(堆)3、静态属性:存放在类(方法区)引用分类:接口类型, 类类型、数组类型类类型的引用(三种)1、类类型的引用=null–>类类型的引用=new 类();2、类类型的引用=该类的对象–>类类型的引用=new 类();3、类类型的引用=该类子类的对象...原创 2020-03-24 19:16:58 · 203 阅读 · 0 评论 -
==和equals的区别?哈哈 是不是好像会又好像不会呢
1、==操作符既可以用于比较基本的数据类型,也可以用于比较对象, 如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址。而equals只可以用于对象之间的比较2、对于equals方法,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象。如果没有对equals方法进行重写,...原创 2020-03-10 14:14:05 · 105 阅读 · 0 评论 -
带你认识抽象类和接口的区别
1、抽象类要被子类继承,接口要被类实现,一个类只能继承一个抽象类,但可以实现多个接口2、接口只能做方法声明,抽象类可以做方法声明,也可以做方法实现3、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。4、修饰符不同,抽象方法可以有public,protected,default,j接口默认public5、实现抽象类的方法时, 如果方法是抽象的,子类必须重写抽象的方法. 如果...原创 2020-03-09 22:55:11 · 272 阅读 · 0 评论 -
【Java关键字总结】(四)用于定义建立实例及引用实例,判断实例的关键字
new程序员没女朋友了,new一个?哈哈哈,其实就是创建一个Person p=new Person(“bite”,2,4);通过类来生产一个对象。语法格式类名称 对象名称 =new 类名称();这条语句一共做了三个工作a、通过new计算对象需要的内存大小,开辟空间初始化为0b、Person(“bite”,2,4)是调用构造方法,对属性初始化c、Person p:构造方法调用结束,返...原创 2020-03-04 20:50:52 · 502 阅读 · 0 评论 -
【Java关键字总结】(三)描述类与类之间的关系entends & implements
extends1、extends是继承父类(final修饰的和抽象类除外),2、Java中不支持多重继承,但是可以用接口来实现,所以引出了implements。3、java不允许多继承,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了比如class A extends B implements C,D,Eimplementsimplements是一个类实现...原创 2020-03-04 20:13:35 · 363 阅读 · 0 评论 -
【Java关键字总结】(二)用于定义类、函数、变量修饰符的函数
abstract修饰类:用abstract修饰的类表示抽象类,抽象类不能被实例化,但可以有构造方法,构造方法可以被子类构造函数调用,需要子类继承并覆盖其中的抽象方法,一个子类只能继承一个抽象类。修饰方法:用abstract修饰的方法表示抽象方法,抽象方法没有方法体,只声明,不实现。子类继承抽象类的话,必须覆写抽象类的所有抽象方法,否则他还是抽象类。抽象关键字不能private,static,f...原创 2020-03-04 19:47:36 · 242 阅读 · 0 评论 -
【Java关键字总结】(一)用于定义访问权限修饰符的关键字
private(私有的)private:是访问权限最低的访问限制符,被它修饰的变量只能访问本类的对象,即除class自身外,其他都不得使用。可以修饰成员变量,成员方法,构造方法,被private修饰的成员只能在其修饰的本类中访问,在其他类中不能调用,但是被private修饰的成员可以通过set和get方法向外界提供访问方式default(默认的)defalut:即不写任何关键字,它可以修饰...原创 2020-03-04 18:42:58 · 523 阅读 · 0 评论 -
java三大集合List Set Map
List集合一、Arraylist:实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高,但因为地址连续, ArrayList要移动数据,所以插入和删除操作效率比较低。它是线程不安全的二、LinkedList:基于链表的数据结构,地址是任意的,插入和删除速度快,访问速度慢。适用于要头尾操作或插入指定位置的场景。也是线程不安全的。三、Vector:与ArrayLi...原创 2020-03-02 18:03:44 · 129 阅读 · 0 评论 -
JAVA语言的优势
一、面向对象java是典型的面向对象编程语言,具体体现在三个方面封装、继承和多态封装:把类得内部与外界隔离起来,防止该类的代码被外界随机访问,如果要访问就必须有特定的方式。他带来的好处就是提高了java的安全性和程序的可维护性以及代码的复用性。继承:通俗来说就是儿子继承父亲,使子类具有父类的行为。多态:主要体现在重载和重写二、一次编译,处处运行无论是windows系统还是Linux系统...原创 2020-02-29 18:39:58 · 230 阅读 · 0 评论 -
方法重载vs方法重写
重写重写是什么意思?有什么规则?顾名思义就是把方法重新写一遍,什么时候写呢?子类继承父类方法时写。1.发生在父类与子类之间2.方法名,参数列表,返回类型,必须相同。简称同名同参3.访问修饰符的限制一定要大于被重写方法的访问修饰符(关于访问限定符的具体细节,另一篇博客有些。)4非检查异常:重写方法可以抛出任何非检查的异常,无论被重写方法是否查明了该异常5、检查异常:重写方法一定不能抛出...原创 2019-11-26 22:01:37 · 348 阅读 · 0 评论 -
(*^▽^*)看完它再也不怕面试被问GC了(*^▽^*)
GC的概念Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,在使用JAVA的时候,一般不需要专门编写内存回收和垃圾清理代 码。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。电脑的内存大小的不变的,当我们使用对象的时候,如使用New关键字的时候,就会在内存中生产一个对象,但是我们在使用JAVA开发的时候,当一个对象...原创 2020-07-08 15:28:02 · 325 阅读 · 0 评论 -
java中创建对象的几种方式
1.使用 new 的方式,Person p = new Person();2、使用克隆的方式,调用对象的 clone() 方法Person p1 = (包名.Person) p.clone();3、使用反序列化的方式 ,让类实现Serializable接口ObjectInputStream in = new ObjectInputStream(new FileInputStream(...原创 2019-11-25 21:36:21 · 227 阅读 · 0 评论 -
死锁形成的原因和四个必要条件
死锁的概念死锁是指两个或两个以上的进程(线程)在运行过程中因争夺资源而造成的一种僵局,若无外力作用,这些进程(线程)都将无法向前推进 ,这时就形成了死锁。处于死锁状态的进程称为死锁进比如一扇门,你要出我要进,你在等我让,我在等你让,这时就陷入了死循环,就形成了死锁。死锁产生的原因先来看两个概念: 可抢占资源和不可抢占资源可抢占资源:指某进程在获得这类资源后,该资源可以再被其他进程或系统...原创 2019-11-24 21:38:23 · 15040 阅读 · 0 评论 -
很全面的指针和引用的区别:很全面的
1.指针是变量,这个变量存放的是所指内容的地址。引用是别名,与所引用变量占用同一内存空间。2.程序为指针变量分配区域,而不为引用分配内存区域。3.指针可以是空,但是引用的值不能为空,在定义时必须得初始化。4. 从现象上看:指针在运行时可以改变所指向的值,而引用一旦与某个对象绑定后就不再改变。意思是:指针可以被重新赋值以指向另一个对象,但是引用则总是在初始化时被指定的对象,以后不能改变,但是指...转载 2019-11-24 21:08:24 · 106 阅读 · 0 评论 -
JVM内存模型
JVM内存模型如图所示五大部分的详细介绍1、程序计数器程序计数器是一个比较小的内存空间,用来记录当前线程正在执行的那一条字节码指令的地址。如果当前线程正在执行的是本地方法,那么此时程序计数器为空。程序计数器有两个作用,①、字节码解释器通过改变程序计数器来一次读取指令,从而实现代码的流程控制,比如我们常见的顺序、循环、选择、异常处理等。②、在多线程的情况下,程序计数器用来记录当前线程执...原创 2019-11-22 20:50:54 · 167 阅读 · 0 评论 -
对进程和线程的理解
一、进程比如你要去买衣服,从你进门,就要开始使用服装店的资源,售货员给你推荐款式,到你试衣服,然后完成买衣服这件事,这全套过程的执行就是一个生活中的进程。对于操作系统来说,一个任务就是一个进程(Process),它是操作系统管理的基本运行单元,是系统进行资源和调度的独立单位。当打开windows的任务管理器时, 任务管理器”中的每个exe文件就可以简单的理解为一个进程。二、线程线程可以理解...原创 2019-11-03 21:10:51 · 310 阅读 · 0 评论 -
小白眼中的类和对象(Java)
Java是一门完全面向对象的编程语言,(三大特点:封装、继承、多态)类和对象是面向对象编程的基础和核心。那类和对象到底是什么?类和对象与生活的联系:就拿电脑来举例,类就相当于电脑的设计蓝图,对象就相当于一台一台的电脑,品牌、电池、内存、显示屏等就属于电脑的特征,通过电脑我们可以上网、看电视,这属于它的方法程序中的类到底是什么两个部分组成:(1)属性: 属性是根据对象的特征进行定义的;(2...原创 2019-07-20 15:22:52 · 103 阅读 · 0 评论 -
java语言基础
JAVA语言基础语言之间是有很多共性的,java和c之间也有很多相似的地方,虽然很简单但却不能不注意它,java主要面向对象,以下是java最基本的语言要素,要想学好java,这些基本功必须要扎实,如此才能更好的理解后面的java知识一、语言要素1.1、标识符a、标识符由字母、数字、下划线和$等组成的字符串(不能以数字开头)b、区分大小写。num和Num是不同的c、起名字时应做到知名见...原创 2019-03-30 20:51:21 · 168 阅读 · 1 评论 -
初学java对数组的认识
数组:是一组相关类型变量的集合,并且这些变量可以按照统一的方式进行操作,它是引用类型数据,有内存分配问题数组定义:int[ ] arr=new int[5];注意事项:1、可以访问的索引范围是0到length-1,即0到4,超出这个范围就会产生java.lang,ArrayIndexOutOfBoundsException,即数组下标越界2、开辟好之后,每个元素都是该数据类型的默认值,...原创 2019-07-19 15:12:51 · 171 阅读 · 1 评论