面试
整理资料为面试做准备
healing97
热爱工作,热爱生活
展开
-
HTTP总结《二》
HTTP总结《二》1.HTTP的今生来世到现在为止,HTTP协议已经有四个版本了。HTTP1.0——》HTTP1.1——》HTTP/2——》HTTP/32.HTTP1.0与HTTP1.1这两者之间最大的区别就是HTTP1.1默认是持久化连接。HTTP1.0默认的是短连接,每次都需要三次握手建立连接,然后进行数据传输,最后通过四次挥手断开连接。简单来说,就是每次与服务器交互,都需要新打开一个连接!消耗资源HTTP1.1中默认使用持久化连接来解决:建立一个连接,多次请求均由这个连接完成(注意:如果原创 2020-06-15 13:43:21 · 100 阅读 · 0 评论 -
JVM系列之初识JVM《三》
从上一篇博文中,我们了解到JVM内存模型、加载器等内容,这一篇我们了解一下类的加载阶段用到的双亲委派模型。类的加载过程一个类继承层次很多,这就是有时候JVM会很慢的原因。双亲委派模型1.先从子类加载器到顶级类加载器,查找当前类加载器在之前有没有加载过这个类,如果加载过,此时返回这个类的class对象。2.如果没有加载过这个类。那么此时,应该从父类到子类依次尝试加载。(加载是否成功,就看这个类是否在三种类加载器的管辖范围之内)。本人才疏学浅,如有错误烦请指出,谢谢!..原创 2020-06-15 13:35:13 · 141 阅读 · 0 评论 -
JVM系列之初识JVM《二》
从前面的博文中,我们了解到Java的跨平台性以及JVM的生命周期以及工作原理,接下来我们来了解JVM的加载系统等。JVM架构图基础介绍将JVM划分为三个主要的子系统类装载子系统(Class Loader Subsystem)运行时数据区(Runtime Data Areas)执行引擎(Execution Engine)类装载子系统Java的动态类装载功能是由类装载子系统实现,可以装载,连接,初始化文件加载:功能是加载类,共有三种类加载器,Boot Strap Class原创 2020-06-15 13:14:15 · 144 阅读 · 0 评论 -
JVM系列之初识JVM《一》
Java的跨平台性Java中提到跨平台,想到的是JVM,但是能跨平台的是Java程序,而不是JVM。JVM是用C/C++开发的,是编译后的机器码,是不能跨平台,不同的平台需要安装不同版本的JVM编写的Java文件,编译之后生成.class文件,称之为字节码文件,Java虚拟机(JVM)负责将字节码文件翻译乘法特定平台的机器码后才能运行。即只要在不同的平台上安装对应的JVM,然后运行字节码文件,即运行Java程序在这个过程中,编写的Java程序没有改变,仅仅是通过JVM这个中间层,就能在不同的平台上运原创 2020-06-15 13:00:41 · 167 阅读 · 0 评论 -
HTTP总结《一》
HTTP总结《一》1.为什么学习HTTP?HTTP协议就是客户端和服务器交互的一种通讯的格式。让文档之间相互关联,形成超文本可以互相传阅。2.HTTP基础概念两台计算机相互通信的时候,HTTP分成的目的是为了将困难的问题简单化,而而且分层后就可以只关注我们需要关注的层次,而不用理会其他层。3.网站通信粗略过程我们在web通信的时候,不仅仅需要HTTP协议,还会涉及到其他的协议。DNS:负责解析域名我们在访问一个网页的时候哦,往往是通过域名来访问的链接,而计算机通信只认识主机地址 (192.1原创 2020-05-31 21:54:48 · 103 阅读 · 0 评论 -
索引失效的情况
索引失效的情况使用explain select....../G;来查询是否使用到索引,如果使用到,可以通过key查到,否则key为null。1.最好全值匹配;2.最左前缀法则:如果索引使用了多列,查询从索引的最左前列开始,且不能跳过索引中的列;3.不在索引中做任何操作(计算,函数,类型转换),会导致索引失效而转向全表扫描;4.存储引擎不能使用索引中范围条件右边的列,即范围之后全部失效;5.精良使用覆盖索引,只访问索引的查询(索引列和查询列一致),减少使用select *;6.My原创 2020-05-29 23:26:17 · 207 阅读 · 1 评论 -
网络
网络概括计算机网络:通过传输介质、通信设备和网络通信的协议、把分散在不同地点的计算机设备互联起来、实现资源共享和数据传输的系统传输介质:光纤、网线、光波通信设备:卫星、光缆、交换机。。。网络协议:TCP、UDP、IP…网络编程:编写程序使网络中的两个或多个设备(计算机)直接进行通信OSI网络模型国际标准化组织提出的网络的开发互联参考模型OSI(Open System InterCon...原创 2020-05-07 21:36:43 · 105 阅读 · 0 评论 -
static 关键字
static 关键字1.static 修饰成员变量 类名.静态变量静态变量和成员变量之间的区别:成员变量:堆 一份对象对应一份成员变量 this.name静态变量:方法区 一个类对应一个静态变量(多个对象操作同一个静态变量)(类变量) People.name2.static 修饰成员方法静态方法和成员方法之间区别:有无this引用3.静态块static { ...原创 2020-05-07 21:36:11 · 88 阅读 · 0 评论 -
Spring IOC,AOP原理
Spring IOC,AOP原理(重点)IOC:控制反转假设有这么一个场景:在A类中调用B类的方法,我们就称A依赖B,B为被依赖(对象)传统做法:直接在A(方法)中new出B类对象,然后调用B类方法Spring框架:在spring中,B的实例对象被看成Bean对象,这个Bean对象由spring容器进行创建和管理,这样,A获取B的实例对象就不是由自己主动去获取,而是被动接受spri...原创 2020-05-06 17:47:05 · 142 阅读 · 0 评论 -
Iterator 怎么使用?有什么特点?
Java中的Iterator功能比较简单,并且只能单向移动:(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。(2) 使用next()获得序列中的下一个元素。(3) 使用...原创 2020-05-06 11:57:59 · 3329 阅读 · 0 评论 -
HashMap和HashTable的区别
HashMapt和HashTable的区别HashMap和HashTable的区别继承的父类不同HashTable继承自Dictionary类,实现Map接口HashMap继承自AbstractMap类,实现Map接口线程安全性不同HashTable中的方法时synchronized,而HashMap中的方法在缺省情况下是非synchronized是否提供contain...原创 2020-05-05 22:13:32 · 93 阅读 · 0 评论 -
StringBuffer和StringBuilder,String的区别
StringBuffer和StringBuilder,String的区别Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder,它们都可以存储和操作字符串 String 一个Java对象,只读字符串,引用的字符串内容不能被改变;如下,str仅仅是一个引用对象,它指向一个字符串对象“abc”。而str = "def" 的含义是让str重新...原创 2020-05-05 22:07:12 · 89 阅读 · 0 评论 -
synchronized关键字
synchronized关键字线程安全的解决方案还有Synchronized,提供了线程同步的方式Synchronized的使用方式关键字可以修饰方法或者代码块,确保多个线程在同一时刻,只能有一个线程处理方法或者是同步块,保证线程对访问变量的可见性,有序性,原子性1.修饰普通方法 //修饰普通方法 public synchronized void add() { ...原创 2020-05-05 20:53:50 · 223 阅读 · 0 评论 -
Java继承、多态接口和抽象类总结
一、继承(extends)继承的理解:当我们定义很多部分具有相同属性和行为的类时,如果使用之前我们所讲类的定义方式进行定义,那么是不是发现有大量的代码重复书写,为了允许使用现有的类的功能,并在无须改写原来的类的情况下,引入了继承的概念。我们把允许重用现有类称为基类(或超类,父类),由基类派生出来的类称为派生类(子类)。Java类的继承主要通过extends关键字来完成的。一旦继承后,子类将获...原创 2020-04-29 18:15:37 · 522 阅读 · 0 评论 -
线程池详解
线程池详解为什么要使用线程池呢?线程池属于对象池,所有线程池都有一个非常重要的共性,就是为了最大程度的复用对象,因此,线程池最重要的特征就是利用线程。其次,java线程池的编程模型相对于原有的多线程模式来说,还有一大改进,那就是线程代码和业务代码的分离。常用的线程池有几种?newSingleThreadExecutor:单线程化的线程池newCachedThreadPool:可缓存线程...原创 2020-03-25 16:47:37 · 161 阅读 · 0 评论 -
三次握手与四次挥手详解
首先,在介绍三次握手和四次挥手之前,我们需要了解以下概念:TCP协议TCP(Transmission Control Protocol)传输控制协议,面向连接的传输协议,在传输层。TCP协议特点面向连接:通信之前必须建立连接,通信后断开连接 每一个TCP连接只能是点对点的(一对一) 提供的可靠的交付服务:通过TCP连接传输的数据,无差错,不丢失,不重复 提供全双工通信 面向...原创 2020-04-27 14:39:32 · 778 阅读 · 0 评论 -
整理了这么久,终于把多线程面试搞定了!
1.Java面试中常被问到的进程与线程你知道多少呢?2.并发和并行的区别3.Java多线程《一》4.Java多线程《二》5.线程池详解6.在多线程下,如果对一个数进行叠加,该怎么做?7.ReentrantLock你知道多少呢?8.ReentrantLock源码分析9.volatile关键字10.线程池的实现11.生产者消费者模型12.ConcurrentHashM...原创 2020-04-26 17:35:29 · 905 阅读 · 0 评论 -
死锁详解
死锁的介绍目录死锁的介绍1.什么是死锁死锁是指两个或者两个以上的进程(线程)在执行的过程中,由于竞争资源而造成的阻塞问题,若无外力的作用下会无法继续推进,此时系统称之为死锁状态2.死锁的形成如图所示:将设存在两个线程SetThread和GetThread,现在SetThread持有了ObjectA资源请求资源ObjectB。GetThread持有了ObjectB资源...原创 2020-04-26 17:34:04 · 269 阅读 · 0 评论 -
ConcurrentHashMap详解
ConcurrentHashMap详解HashTable和Vector是线程安全的(本质是Synchronized),其他的集合(ArrayList…)是通过Collections.synchronized*()系列的方法来实现线程安全操作,JDK1.5后提供了线程安全的容器,在Java.util.concurrent包路径下通过继承图可知,线程安全的类在ConcurrentMap接口下,该...原创 2020-04-26 17:09:53 · 2897 阅读 · 0 评论 -
线程调度之用户级调度和系统级调度
用户级调度可以提供的调度方式:调整线程优先级:Java线程有优先级,优先级高的线程获得较多的运行机会(运行时间);static int Max_priority 线程可以具有的最高优先级,值为10;static int MIN_PRIORIYT 线程可以具有的最低优先级,值为1;static int NORM_PRIORITY 分配给线程的默认优先级,值为5;Thread类的setP...原创 2020-04-26 16:48:52 · 719 阅读 · 0 评论 -
Java面试中常被问到的进程与线程你知道多少呢?
1.进程和线程的概念进程是计算机上正在执行的一个独立的应用程序,进程是一个动态概念,必须是进行状态。如果一个应用程序没有启动,那就不是进程:进程是资源的分配的基本单位(内存、进程ID(PID))线程是组成进程的基本单位,可以完成特定的功能,一个进程是有一个后者多个线程组成的:线程是资源调度的单位2.进程和线程的区别内从空间的区别:进程有独立的内存空间,每个进程之间都是相互独立的。线程...原创 2020-04-26 16:41:43 · 223 阅读 · 0 评论 -
并发和并行的区别
首先我们需要知道,并发和并行都是CPU的手段1.并发是指多个任务在一个时间段呢重复的执行的结构设计运行起来的程序 .exeCPU快速切换给我们产生的同事执行的错觉2.并行真正的同时进行...原创 2020-04-26 16:31:39 · 153 阅读 · 0 评论 -
网络模型总结
JAVA网络部分介绍了几种网络模型,可以分开去介绍。一、传统的BIO编程网络编程的基本模型是C/S模型,即两个进程间的通信。服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作。连接成功后,双...原创 2020-04-20 19:02:35 · 230 阅读 · 0 评论 -
HTTP1.1新特性
HTTP1.1新特性1. 维护长连接TCP的keep alive是检查当前TCP连接是否活着;HTTP的Keep-alive是要让一个TCP连接活久点。它们是不同层次的概念。TCP keep alive的表现:当一个连接“一段时间”没有数据通讯时,一方会发出一个心跳包(Keep Alive包),如果对方有回包则表明当前连接有效,继续监控。① 长连接:在经过三次握手,建立TCP连接后,在数...原创 2020-04-12 01:07:59 · 2001 阅读 · 0 评论 -
排序总结(Java实现)
排序总结(Java实现)1.冒泡排序冒泡排序(BubbleSort)算法是一种较简单的排序算法,它在重复访问要排序的元素列时,会依次比较相邻的两个元素,如果左边的元素大于右边的元素,就将二者交换位置,如此重复,直到没有相邻的元素需要交换位置,这时该列表的元素排序完成。该算法名称的由来是越大的元素会经过交换慢慢「浮」到数列的顶端(升序或降序排列),就如同水的气泡最终会上浮到顶端一样。代码实现...原创 2020-03-08 21:13:41 · 87 阅读 · 0 评论 -
Java之区别总结
Java之区别总结基础篇1.char和varcharchar:长度固定varchar:长度可变2.“==”和equals()==:比较值equals():比较地址注意:自动装箱和自动拆箱3.Comparable和Comparator接口Comparable:Java提供了只包含compare To()方法的Comparable接口。这个方法可以对两个对象排序。输出结果0...原创 2020-02-14 17:18:02 · 319 阅读 · 0 评论