面试
smrtLee
这个作者很懒,什么都没留下…
展开
-
String、StringBuilder和StringBuffer的区别
String和StringBuilder的区别 String和StringBuilder最大的区别就在于String是不可变的,具有不可变性,对String的各种操作都不会对本身产生影响,除非采取赋值的形式把变化的值重新赋给String,这就导致了,String的操作会产生很多中间值消耗内存,而StringBuffer的操作是直接在原来对象上进行操作的,比如: //对String进行字符串拼接 //新建一个String对象压入栈中并指向常量池中的"hello" String str = new St原创 2020-08-19 10:35:49 · 127 阅读 · 0 评论 -
JAVA单例模式
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。 单例模式分为饿汉式和懒汉式两种构造方式,两种构造方式都要满足三点:单例模式的类只提供私有的构造函数,类定义中含有一个该类的静态私有对象,该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。而饿汉式和懒汉式的区别就在于,饿汉式是在类被装载时就实例化(空间换时间),懒汉式是在类第一次被调用时实例化(时间换空间)。优点在原创 2020-08-19 10:34:49 · 97 阅读 · 0 评论 -
基础排序算法总结
选择排序流程动态演示图插入排序流程动态演示图注意事项 插入排序是一个重点排序算法,因为当排序的数组基本有序的时候,插入排序的效率甚至高于快速排序,在最极端的情况下,数组完全有序,插入排序的时间复杂度仅为O(n)级别,只需遍历一遍无需任何操作。归并排序流程动态演示图算法优化 在编写代码的过程中,我们可以在归并排序的代码中加入一条判断,如果第二个数组中的头元素大于第一个数组中的尾元素则直接跳过merge操作,因为两个数组已经有序,第二个数组中的头元素大原创 2020-08-19 10:33:25 · 141 阅读 · 0 评论 -
后端开发面试题总结(更新中)
写在前面 本文中的面试题答案为博主自己在网上参考各个文献总结,可能会存在部分错误或者总结不足的地方,欢迎各位大佬指正交流,共同进步。软连接和硬链接的区别软连接:B保存A的地址,访问B→访问B中A的地址→访问A硬连接:B指向A的地址,访问B→访问ATCP/UDP的区别TCP面向连接(发送数据先建立连接(三次握手)),UDP面向非连接(发送数据不需要建立连接)TCP发送数据稳定,不缺失,不重复且有序(这里可以介绍下TCP流量控制)TCP面向字节流,UDP面向报文TC原创 2020-08-19 10:32:37 · 1036 阅读 · 0 评论 -
JVM:JAVA虚拟机知识点总结
JVM作用 学过JAVA的我们都知道,JAVA语言的一大特点就是’一次编译,到处运行’,只需进行一次的编译操作即可放到任意操作系统运行,而实现这个特点的主要原因就在JVM的身上,java文件经过javac命令编译生成class字节码文件,通过java命令利用JVM生成相应操作系统的机器码即可实现在不同操作系统下运行 JVM组成结构 本地方法栈 本地方法栈中储存class文件中用native关键字修饰的非JAVA实现相关方法栈(线程) 栈帧用来存放方法的相关操作数据,其中(以方原创 2020-08-19 10:30:17 · 189 阅读 · 0 评论 -
剑指offer刷题记录
算法与数据结构学习网站https://visualgo.net/zhhttps://www.cs.usfca.edu/~galles/visualization/Algorithms.html跳台阶题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路分析这道题本质上其实是一个斐波那契数列问题:当台阶为1时,只能跳一步,一种方式 1 1当台阶为2时,可以选择一步一步跳,也可以选择跳两步原创 2020-08-19 10:29:04 · 106 阅读 · 0 评论