- 博客(56)
- 收藏
- 关注
一招破解 Java 集合类面试题
1. Java集合框架的基础接口有哪些? Collection为集合层级的根接口。一个集合代表一组对象, Java平台不提供这个接口任何直接的实现。 Set是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。 List是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List更像长度动态...
2019-09-25 22:26:32
169
转载 一篇总结的很好的String | StringBuffer | StringBuilder
https://baijiahao.baidu.com/s?id=1629804867201303563&wfr=spider&for=pc
2019-06-30 23:48:15
161
原创 java学习路线
1.Linux 安装使用就行了。2.java基础: 反射(动态代理、spring IOC 、AOP)集合类(Collections Map)hashcode equals()Arrays Collections匿名内部类(new 接口 或者new 一个类 在大括号里直接写重载方法)java 8 Lamada 表达式(e——>(执行语句))值传递和引用...
2019-05-21 22:22:21
200
原创 垃圾收集器的种类
新生代 serial parNew parallel Scavengeserial采用复制算法,单线程parNew采用复制算法,多线程版本parallel Scavenge复制,并行版本,有点在于达到一个可控制吞吐量老年代CMS(Concurrent Mark Swap...
2019-04-21 22:44:27
181
原创 剑指offer算法分析
1.二维数组中的查找: 二维数组,每行都从左往右递增,每列都从上往下递增。现在该数组中查找是否有指定的数。 解析:首先想到递归思想、二分查找思想。接着,由于左上角或右下角的数据类似于二分查找的中位数,故可以以此为切入点,不断切割二维数组,最终得到查找结果。 2.替换空格: 实现一个函数,将一个字符串中的每个空格替换成“%20”。 解析:1.replac...
2019-04-14 00:22:31
317
原创 架构高性能网站
服务器如何发送数据? 1. 服务器程序将需要发送的数据写入该程序的内存空间中; 2. 服务器程序通过操作系统的接口向内核发出系统调用; 3. 系统内核将用户态内存空间中的数据复制到内核缓冲区中去,然后通知网卡过来取,此后CPU转而做其他处理; 4. 网卡到CPU指定的内核缓冲区中将数据复制到网卡缓冲区中; 5. 网卡将...
2019-04-13 23:35:28
72
原创 深入浅出Spring Boot 2.x读书笔记
通过扫描装配你的 Bean 如果一个个的 Bean使用注解 @Bean注入 Spring IoC容器中,那将是一件很麻烦的事情。好在 Spring还允许我们进行扫描装配 Bean到 IoC容器中,那将是一件很麻烦的事情。好在 Spring还允许我们进行扫描装配 Bean到 IoC容器中,对于扫描装配而言使用的注解是 @Component和 @ComponentS...
2019-04-13 01:45:26
2395
原创 servlet 是个啥
定义 servlet是在服务器端运行的一段小程序。一个servlet就是一个Java类,并且可以通过”请求——响应“编程模型来访问的这个驻留在服务器内存里的 servlet程序。编写servlet 1.继承 HttpServlet类 2.重写doGet()或者doPost()方法 3.在web.xml 中注册 ServletServlet (...
2019-04-07 00:47:31
182
原创 Spring笔记
Spring IOC 容器:通过阅读配置元数据提供的指令,容器知道对哪些对象进行实例化、配置和组装。配置元数据可以通过XML、Java注释或Java代码来表示。在Spring中BeanFactory是IOC容器的实际代表者。Spring BeanFactory 容器 它是最简单的容器,给DI提供了基本的支持,它用org.springframework.beans.fa...
2019-03-19 21:24:26
109
原创 八大排序
插入排序1.直接插入排序 基本思想是将左边视为有序数组,遍历右边数字来不断插入左边有序数组,使得左边有序数组不断壮大。public void insert(int[] arr){ for(int i=1;i<arr.length;i++){ for(int j=i-1;j>=0;j--){ int cmp =arr[j+1]; if(arr[...
2019-03-19 00:31:33
92
原创 二叉树的三种遍历的递归写法和非递归写法
二叉树的前序遍历、中序遍历、后续遍历的递归方法代码较少,思路就是方法的压栈出栈过程。它的非递归写法其实就是使用了递归遍历的思想,采用栈的结构,也就是说非递归写法写的是递归写法函数调用入栈出栈的过程。前序遍历:节点输出并入栈,无左节点出栈,出栈不输出,如果有右节点则继续入栈,否则继续出栈,直到栈为空。中序遍历:节点入栈,无左节点出栈,出栈输出,如果有右节点则继续入栈,不输出,...
2019-03-12 00:31:02
278
原创 八皇后问题
DFS思想1.import java.util.List;import java.util.ArrayList;public class test { public List<List<String>> solveNQueens(int n) { List<List<String>...
2019-03-04 15:53:31
95
转载 数据库存储过程
存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。传送门存储过程的优点:1.减少网络通信量。调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会...
2019-02-28 16:15:56
183
转载 软件工程
例题: 三层次(或多层次)软件架构相比二层次软件架构有什么优势? 答: 在三层次结构中,客户端对数据源的直接访问被对应用程序请求所替代,客户端访问的是应用程序,由应用程序对数据进行查询和存取,这样就能保证数据不被非法使用和篡改。目前我们比较多的是基于Web的三层次结构应用,一般以标准的TCP/IP网络为平台,可很好地与网络开发语言如java等有效地集成,使异种资源的结合变的...
2019-02-27 10:43:50
175
转载 常见设计模式
例题1:写一个Singleton出来。 答案:Singleton模式的主要作用是保证在java应用程序中,一个类Class只有一个实例存在。 Singleton模式通常有两种形式。第一种形式:定义一个类,它的构造函数为private的,他有一个static的private的该类变量,在类初始化时实例化,通过一个 ...
2019-02-27 10:20:30
120
转载 匿名内部类
传送门 概念:即内部类的简化写法 前提:存在一个类(可以是具体类也可以是抽象类)或接口 格式:new 类名或接口名{重写的方法} 本质:创建的是继承了类或实现了接口的子类匿名对 象。...
2019-02-27 00:04:23
274
转载 有关的字符串算法
例题1: 要求并不是按传统的字典排序,而是考虑小写字母,也就是a = A。 public static int comparto(String aArr ,String bArr){ int aLen = aArr.length(); int bLen = bArr.length(); int order1,order2; cha...
2019-02-26 22:42:11
165
原创 约瑟环问题
例题: 17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事,15个教徒和15个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法,30个人围成一个圆圈,从第一个人开始依次报数,每数到第九个人,就将他扔入大海,如此循环进行,直到仅剩余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。解析:题目中30个人围成一圈,可以用一个循...
2019-02-26 21:46:31
1128
转载 数组
数组的声明: int [][] array; int []array[]; int array[][];数组的定义: int iArray[][] = new int[3][4]; int jArray[][] = {{1,2,3},{4,5,6}};二维数组列数可以不同: int array[][] = new int[2...
2019-02-26 16:24:22
167
转载 正则表达式例题
例题1:String s ="32osjfdajsdofjasojg8sofsof0sofjoasjfaf9323k32aodfjosa",从中找出3280932332,你会怎么做?public Class Solution{ static String s ="32osjfdajsdofjasojg8sofsof0sofjoasjfaf9323k32aodfjosa";...
2019-02-26 16:09:10
291
转载 String类
(1) String使用private final char value[] 来实现字符串的存储,也就是说,String对象创建之后,就不能再修改此对象中存储的字符串内容,就是因为如此,才说String类型是不可变的。 (2)String类有一个特殊的创建方法,就是使用“ ”双引号来创建。例如new String(“jinder”)实际创建了2个String对象,一个是“jinder”通过“ ...
2019-02-26 15:47:13
110
转载 抽象类与接口
1.抽象类只能作为其他类的基类,不能被直接实例化,不能使用new操作符。抽象类如果含有抽象的变量或值,则它们要么是null类型,要么包含了对非抽象类的实例的引用。2.抽象类允许包含抽象成员,但这不是必须的。抽象类中可以有非抽象的方法。3.抽象类不能是final的。4.如果一个非抽象类从抽象类中派生,则其必须通过覆盖来实现所有继承而来的抽象成员。5.抽象类可以被抽象类所继承,结果仍是...
2019-02-26 11:05:27
160
转载 super、this关键字
在java中,有时还会遇到子类中的成员变量或方法与超类中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏超累的成员变量或方法,但是我们如果想要使用超类中的成员变量或者方法,就需要用到super。 为了在子类中引用超类中的成员变量name和方法value(),在代码中使用了super、super.name和super.value()。...
2019-02-26 10:19:06
136
转载 重载与覆盖
成员函数被重载的特征如下:1.相同的范围(在同一个类中)2.函数名字相同。3.参数不同。4.virtual关键字可有可无。覆盖的特征如下:1.不同的范围(分别位于派生类和基类)。2.函数名字相同。3.参数相同。4.基类函数必须有virtual关键字。 ...
2019-02-25 21:17:05
100
转载 多态、重载、覆盖
虚函数总是在派生类中被改写,这种改写被称为“override”。override是指派生类重写基类的虚函数,就像某个类中重写了另一个类中的某个函数,重写的函数必须有一致的参数表和返回值。override一直没有合适的中文词汇来对应,在此译为“覆盖”更贴切。overload约定俗成地被翻译为“重载”,是指编写一个与已有函数同名但是参数表不同的函数。重载不是一种面向对象的编程,而只是一种语法规...
2019-02-25 17:20:03
262
转载 集合类
java容器类库一共有两种 Collection 和 Map。各自旗下的子类关系如图: Collection: List: ArrayList: 底层通过数组实现,擅长随机访问,但在list中间添加、删除、移动元素较慢。 LinkedList 底层通过链表实现,擅长插入、...
2019-02-25 17:07:36
86
转载 clone
clone方法是在Object类中定义的,而且是protected型的,只有实现了Cloneable接口,才可以在该类的实例上调用clone方法,否则会抛出CloneNotSupportException。说clone方法并没有对对象是否属于cloneable类型进行检验这个观点是不正确的。因为cloneable接口的出现跟接口的正常使用没有任何关系,特别是它并不指定clone方法--------...
2019-02-25 14:57:09
85
转载 什么是java中的内存泄漏
内存溢出与内存泄漏:https://blog.youkuaiyun.com/qq_37755661/article/details/82891365 在java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点: 1.对象是可达的 2.对象是无用的,即程序以后不会再使用这些对象。 如果对象满足这两个条件,这些对象...
2019-02-25 14:00:06
1547
转载 如何实现java的序列化
只有实现了serialize()和Externalizable()接口的类的对象才能实现序列化。Externalizable()接口继承自serialize()接口,实现Externalize()接口的类需要通过自身来控制序列化行为,serialize()可以使用默认的序列化方式。1.java.io.ObjectOutputStream对象序列化包括如下两步: a. 创建对象输出...
2019-02-25 10:20:00
210
翻译 final、finally、finalize
final:修饰符(关键字):指定值 不可更改,指定方法 不可被覆盖,指定类 不可被继承。finally:try....catch......finally 提供finally块来执行任何清除操作。finalize:方法名,在Object类中定义,所有类都继承了。保证对象在GC销毁之前执行,清除非内存资源。...
2019-02-24 21:41:08
74
翻译 关于java异常
1.什么是异常 在java运行程序时,常常会出现一些非正常的现象,这种情况称为运行错误。根据其性质可以分为错误或异常。java程序中,所有抛出的异常都必须从Throwable类派生而来。类Throwable有两个直接子类Error和Exception。 一般来说,最常见的错误有进入死循环、内存泄漏等。这种情况,程序运行时本身无法解决。只能通过其它程序干预。j...
2019-02-24 20:22:59
182
翻译 ‘&’、‘|’、'^’
三个运算符分别为按位与、按位或、按位异或。在布尔逻辑运算符中,这三个运算符又代表着“布尔逻辑与”、“布尔逻辑或”、“布尔逻辑异或”,是非短路运算。“&&”、“||”是短路运算。...
2019-02-24 15:01:52
7291
翻译 Java的数据类型转换
java的数据类型转换一般分为三种:1.简单数据类型之间的转换;2.字符串与其他数据类型之间的转换;3.其他实用数据类型的转换。1.简单数据类型之间的转换 java中,整型、实数型、字符型被视为简单数据类型。这些类型由低级到高级为(byte,char,short)--------->int------>long----------->float--------&...
2019-02-24 14:47:42
120
翻译 自动装箱与自动拆箱
自动装箱就是将基本类型转换为包装类型自动拆箱就是将包装类型转换为基本类型八大基本类型及其包装类:boolean类型、数值类型、字符类型基本类型 字节数 封装类型 byte 1 Byte short 2 Short int 4 Integer long 8 Long float 4 Float ...
2019-02-24 14:10:11
154
翻译 JVM
ClassLoader知识1.classLoader基本概念 ClassLoader 是JVM实现的一部分,ClassLoader包括bootstrap classloader(启动类加载器),ClassLoader在JVM运行的时候加载java核心的API,其中就包括用户定义的classloader,这里指的用户定义,是说可以通过java程序实现的两个classloader:...
2019-02-24 13:55:14
106
原创 关于java按值传递和按引用传递的理解
关于基本数据类型肯定是按值传递。至于对象的类型因为每个对象占用内存较大,如果按值传递需要在函数中重新new对象,耗费资源,这样的话,传递对象的地址,直接在原对象基础上操作就会节省内存...
2019-02-15 11:04:31
116
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人