![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
h_lizeming
这个作者很懒,什么都没留下…
展开
-
执行与赋值顺序
1.父类静态块2.自身静态块3.父类块4.父类构造器5.自身块6.自身构造器程序的赋值步骤为:1.父类的静态变量赋值2.自身的静态变量赋值3.父类成员变量赋值4.父类块赋值5.父类构造器赋值6.自身成员变量赋值7.自身块赋值8.自身构造器赋值...原创 2019-03-29 16:54:57 · 178 阅读 · 0 评论 -
JVM垃圾回收算法
JVM垃圾回收算法常见的垃圾回收算法包括:标记-清除算法,复制算法,标记-整理算法,分代收集算法。在介绍JVM垃圾回收算法前,先介绍一个概念。Stop-the-WorldStop-the-world意味着 JVM由于要执行GC而停止了应用程序的执行,并且这种情形会在任何一种GC算法中发生。当Stop-the-world发生时,除了GC所需的线程以外,所有线程都处于等待状态直到GC任...原创 2019-03-31 09:29:00 · 195 阅读 · 0 评论 -
JVM_垃圾收集器
垃圾收集器如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现Serial收集器串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线程去回收。新生代、老年代使用串行回收;新生代复制算法、老年代标记-压缩;垃圾收集的过程中会Stop The World(服务暂停)参数控制:-XX:+UseSerialGC串行收集器ParNew...转载 2019-03-31 09:45:11 · 187 阅读 · 0 评论 -
实现一个多线程安全的单向有序链表,add单个结点、与其他链表合并
可以考虑一个单向链表实现的队列(Queue)结构,在多线程环境下,多个线程同时对这个队列添加元素和取出元素的时候势必要考虑采用锁的机制来进行同步以防止链表结构被破坏。一般的做法是不管是读取还是写入的时候都使用同一把锁来进行互斥,这样实现起来比较简单但是却很低效。本篇文章主要讲述的是对于一个链表实现的队列,通过采用头部锁和尾部锁的方式来分别对添加元素和取出元素进行互斥,在多线程的环境...原创 2019-03-31 13:57:55 · 540 阅读 · 0 评论 -
常量池
首先常量池这个概念,原来以为只要是一个整型,都会放进到常量池,比如,0,1,12222222等。查找后发现,Byte,Short,Integer,Long,Character这5种整型的包装类也只是在对应值小于等于127并且大于等于-128时才可使用常量池,因为他们至占用一个字节(-128~127);再者Integer.valueOf方法中也有判断,如果传递的整型变量>= -128...原创 2019-03-24 16:08:07 · 150 阅读 · 0 评论 -
TCP/IP
SYN:建立连接ACK:响应seq:例如A->B, 则发送端(A)发送包的第一个位置ack:例如B->A ,则B希望下一次收到的包的位置。一、连接建立阶段1、为什么TCP建立是三次握手?TCP是可靠的传输控制协议,三次握手能保证数据可靠传输又能提高传输效率。如果两次握手的话:1) 如果server给client发送的ACK报文因为网络原因,报文被丢弃,此时serve...转载 2019-04-01 14:39:52 · 105 阅读 · 0 评论 -
数据库分析
关键语法GROUP BYHAVINGcount sum max min avg存储机制 缓存机制 (LRU) SQL解析模块 主从同步 灾难恢复(日志管理)索引管理 锁模块设计关系型数据库:主要分为两个部分 一个部分是存储部分,是用来将数据实现持久化 存储在磁盘中的,然后就是程序实例部分来对存储进行逻辑管理 。为...原创 2019-04-07 20:40:43 · 385 阅读 · 0 评论 -
JVM
JVM194. 说一下 JVM 的主要组成部分?及其作用?• 类加载器(ClassLoader)• 运行时数据区(Runtime Data Area)• 执行引擎(Execution Engine)• 本地库接口(Native Interface)组件的作用: 首先通过类加载器(ClassLoader)会把 J...原创 2019-03-29 10:20:21 · 278 阅读 · 0 评论 -
数据库准备
12、数据库如何实现 rollback 的?数据库在写入数据之前是先讲对数据的改动写入 redo log 和 undo log,然后在操作数据,如果成功提交事务就会讲操作写入磁盘;如果失败就会根据redo log 和 undo log 逆向还原到事务操作之前的状态。...转载 2019-04-08 15:31:54 · 125 阅读 · 0 评论 -
常量池(运行时常量池 静态常量池)
深入浅出java常量池理论 jvm虚拟内存分布: 程序计数器是jvm执行程序的流水线,存放一些跳转指令。 本地方法栈是jvm调用操作系统方法所使用的栈。 虚拟机栈是jvm执行java代码所使用的栈。 方法区存放了一些常量、静态变量、类信息等,可以理解成class文件在内存中的存放位置。 虚...转载 2019-03-29 11:39:16 · 3406 阅读 · 2 评论 -
类的加载
1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类加载器并不需要等到某个类被“首次...转载 2019-03-30 21:02:43 · 704 阅读 · 0 评论 -
数据库的事务隔离
MySQL 的事务隔离是在 MySQL. ini 配置文件里添加的,在文件的最后添加:transaction-isolation = REPEATABLE-READ可用的配置值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、SERIALIZABLE。READ-UNCOMMITTED:未提交读,最低隔离级别、事务未提交前,就可被其他事务读...原创 2019-03-24 15:59:58 · 123 阅读 · 0 评论 -
get 和 post 请求有哪些区别?
get 请求会被浏览器主动缓存,而 post 不会。 get 传递参数有大小限制,而 post 没有。 post 参数传输更安全,get 的参数会明文限制在 url 上,post 不会。...原创 2019-03-23 16:49:52 · 226 阅读 · 0 评论 -
Session cookie
一. 概念理解服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。 Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie来辨认使用者,以方便送出使用者量身定做的内容。然而,cookie是什么呢?session又是什么?先来了解几个概念。 1、无状态的HTTP协议:协议是指计...原创 2019-03-23 12:06:33 · 194 阅读 · 0 评论 -
SessionID的本质
一、客户端用cookie保存了sessionID客户端用cookie保存了sessionID,当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionID,这说明:要么是我们把浏览器关掉了(后面会说明为什 么),要么sessio...原创 2019-03-23 12:13:10 · 171 阅读 · 0 评论 -
Javaweb 各种攻击
如何避免 SQL 注入?使用预处理 PreparedStatement。 使用正则表达式过滤掉字符中的特殊字符。什么是 XSS 攻击,如何避免?XSS 攻击:即跨站脚本攻击,它是 Web 程序中常见的漏洞。原理是攻击者往 Web 页面里插入恶意的脚本代码(css 代码、Javascript 代码等),当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意攻击用户的目的,如盗取用...原创 2019-03-23 12:59:20 · 1634 阅读 · 2 评论 -
servlet
一、什么是servlet?Q:什么是servletA:Java Servlet是运行在web服务器或应用服务器上的程序,它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。.Q:作用是什么呢?A:处理客户端请求并将结果返回给客户...原创 2019-03-23 14:04:39 · 160 阅读 · 0 评论 -
详解创建servlet的原理
1、servlet的生命周期是什么? 服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf) 该servlet对象去处理所有客户端请求,在service(ServletRequest req,ServletResponse...原创 2019-03-23 14:27:42 · 204 阅读 · 0 评论 -
ServletConfig、ServletContext,request、response
讲解四大类,ServletConfig对象,ServletContext对象、request对象,response对象 ServletConfig对象 获取途径:getServletConfig(); 功能:上面大概提及了一下,能得到四个东西, getServletName(); //获取servlet的名称,...原创 2019-03-23 14:57:06 · 284 阅读 · 0 评论 -
request的转发与response的重定向
forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response);redirect方式:response.sendRedirect("/somePage.jsp");forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状...原创 2019-03-23 14:57:48 · 287 阅读 · 0 评论 -
JSP与Servlet
Servlet的是服务器端的程序,动态生成HTML页面发送到客户端,但是这样程序里会有很多out.println(),JAVA与HTML语言混在一起很乱,所以后来太阳公司推出了JSP。其实JSP就是Servlet中,每次运行的时候JSP都首先被编译成servlet的文件,然后再被编译成的.class文件运行。有了JSP,在MVC项目中的servlet不再负责动态生成页面,转而去负责控...原创 2019-03-23 16:06:51 · 192 阅读 · 0 评论 -
JSP 编译和运行过程与JSP转移源码简单分析
JSP 编译和运行过程与JSP转移源码简单分析Web容器处理JSP文件请求的执行过程主要包括以下4个部分:1. 客户端发出Request请求2. JSP Container 将JSP转译成Servlet的源代码(如果是用servlet写的话直接三四)3. 将产生的Servlet源代码经过编译后,并加载到内存执行4. 把结果Response(响应)至客户端很多人都会认为JSP的执行性能会...原创 2019-03-23 16:35:15 · 375 阅读 · 0 评论 -
JSP
JSP 有哪些内置对象?作用分别是什么?JSP 有 9 大内置对象:request:封装客户端的请求,其中包含来自 get 或 post 请求的参数; response:封装服务器对客户端的响应; pageContext:通过该对象可以获取其他对象; session:封装用户会话的对象; application:封装服务器运行环境的对象; out:输出服务器响应的输出流对象; ...原创 2019-03-23 16:37:28 · 131 阅读 · 0 评论 -
hashmap头插法的危害
概念1:Rehash的概念?Rehash 是HashMap在扩容时候的一个步骤。HashMap的容量是有限的。当经过多次元素插入,使得HashMap达到一定饱和度时,Key映射位置发生冲突的几率会逐渐提高。这时候,HashMap需要扩展它的长度,也就是进行Resize影响发生Resize的因素有两个:1.Capacity(HashMap的当前长度–容量)HashMap的当...转载 2019-04-16 15:30:21 · 11063 阅读 · 4 评论