Java
Richard331
这个作者很懒,什么都没留下…
展开
-
设计模式——单例模式
场景在学习Mybatis或者Hibernate中,有一个SqlSessionFactory对象。此对象属于重量级对象,消耗的资源比较大,也只需要存在一个即可。类似的对象还有,线程池、缓存、日志等。这种情况下,就可以使用单例模式来进行控制对象的创建,确保只存在一个。饿汉模式懒汉的的单例模式顾名思义就是,在使用前就已经完成的初始化。代码:public class HungrySingleto...原创 2019-10-26 10:35:12 · 172 阅读 · 0 评论 -
JVM学习——虚拟机性能监控与故障处理工具
定位一个系统的出现的问题,知识、经验是关键基础,数据是一句,工作是运用知识处理数据的手段。数据包括:运行日志、异常对战、GC日志、线程快照、堆转存储快照等等。经常使用适当的虚拟机监控和分析的工具可以加快我们分析数据、定位解决问题的速度。JDK的命令行工具在JDK的bin目录中有命令行工具:这些主要用于监控虚拟机和故障处理的工具,文件大小普遍不大,是因为这些命令行工具大多数是jdk/lib/t...原创 2019-04-25 14:32:35 · 1030 阅读 · 0 评论 -
JVM——JDK可视化工具
JDK可视化工具JDK中除了提供大量的命令行工具外,还有两个功能强大的可视化工具:JConsle和VisualVM,这个两个工具是JDK的正式成员。JConsole: Java监视合格管理控制台JConsole(Java Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具。它的管理部分的功能是针对JMX MBean进行管理,由于MBe...原创 2019-04-25 15:29:17 · 1765 阅读 · 0 评论 -
类加载器
概述Class文件以何种格式存储,类型合适加载、如何连接,以及虚拟机直接控制的行为,用户程序无法对其他进行改变。能通过程序进行操作的,主要是字节码生成与类加载器这两部分的功能。Tomcat:正统的类加载器架构部署到同一个服务器上的两个Web应用程序所使用的Java类库可以实现相互隔离。这是最基本的需求,两个不同的应用程序可能会依赖同一个第三方类库的不同版本。部署到同一个服务器上的两个We...原创 2019-04-30 16:17:16 · 142 阅读 · 0 评论 -
JVM——类文件结构
Java诞生之初的口号:“一次编写,到处运行(Write Once, Run Anywhere)”。各个平台的虚拟机与所有平台都同意使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石。实现语言无关性的基础人生是虚拟机和字节码存储格式。Java虚拟机不和包括Java在内的如何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指...原创 2019-04-25 17:36:26 · 1050 阅读 · 0 评论 -
事务
事务的特性事务应该具有4个属性:原子性、一致性、隔离性、持久性。这个四个属性统称为ACID特性。原子性(atomicty): 一个事务是一个不可分割的工作单位,事务中包括的诸多操作,要么做,要么不做。一致性(consistency):事务必须是使数据库从一个一致性变到另一个一致性。隔离性(isotation):一个事务的执行不能被其它事务干扰。即一个事务内部的操作及使用的数据对...转载 2019-05-17 16:10:11 · 175 阅读 · 0 评论 -
面试记录——福州中润电子科技有限公司
时间:2019-6-13-14:30地点:福州市参数区科技园双湖路8号1号楼3层公司:福州中润电子科技有限公司进去之后先是给了我一份笔试题,笔试题难度算是我做过里面简单的那种,不过还是有些地方做错了。面试流程:是这个公司的架构师面试的,先是问算法复杂度的问题:有哪些算法的复杂度符合下面的O(n) ——最常见的数组查找这类O(n²)——关于这个一开始在想冒泡排序,但是忘记了算法复杂度...原创 2019-06-14 10:27:17 · 935 阅读 · 1 评论 -
Java面试问题整理
今天就毕业了,准备整理整理面试题。Mybatis中mapper层和dao如何进行映射?Mybatis将配置文件中的每一个< mapper>节点抽象成一个MapperHTTP状态码和HTTP状态码分类状态码状态码含义200请求成功301资源被永久转义到其他URL404请求的资源不存在500内部服务器错误状态码分类分类...原创 2019-06-10 15:16:22 · 273 阅读 · 0 评论 -
面试记录——浩普科技
毕业即失业,实习工作明天也要去辞掉,还是安安心心写写博客,做点笔记。面试时间约定的是下午两点,我看到的时候有点慌了,空间太小了,只有半个教室大,人数只有5-6人。进去先做了份笔试题(我最烦这个,逼着我去刷题,今天开始要开始在牛客网开始刷题了)蛮多题我是没有写的,我是准备等等面试的时候问我,顺便我扩充点别的东西,所以简答题空了很多。下面我把一些问题列出来:转发和重定向的区别: 1、转...原创 2019-06-14 10:36:06 · 282 阅读 · 0 评论 -
正则表达式
正则表达式以前没注意这些东西,现在趁着公司给学习的时间好好补补正则表达式需要的三个类:java.util.regex.Patternjava.util.regex.Matcherjava.lang.String字符类运算符优先级:优先级运算符.匹配任何一个*?重复任意次,但尽可能少重复+?重复1次或更多次,但尽可能少重复??重复0次或1次...原创 2019-06-27 17:11:38 · 105 阅读 · 0 评论 -
数据结构篇——表、栈和队列
最近在恶补Hibernate,但是Hibernate懂得东西很浅没法写博客,但是手痒想写博客,就准备复习复习数据结构。书籍——《数据结构与算法分析-Java语言描述》,这本书我买了快三年了,大二上的时候买的,当时完全看不懂,这些回头一看,研一的书籍。。。。抽象数据类型抽象数据结构(abstract data type ADT)是带有一组操作的一些对象的集合。抽象数据是数学的抽象;在ADT的定...原创 2019-06-18 22:09:10 · 252 阅读 · 0 评论 -
JVM——多线程理解
Java内存模型Java内存模型的主要主要、目标是定义程序中各个变量的访问规则,即在虚拟机中将变量储存到内存和从内存中取出变量这样的底层细节。Java内存模型规定了所有变量都存储在主内存中(此处的主内存与介绍物理硬件时的主内存名字一样,两者也可以相互类比,但此处是虚拟机内存的一部分)。每条线程还有自己的工作内存,线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量所有操作...原创 2019-05-05 16:20:52 · 196 阅读 · 0 评论 -
JVM——方法调用
概念方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不设计方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作,Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址(相对于之前说的直接引用)。这个特性给Java带来了更强大的动...原创 2019-04-29 17:38:42 · 167 阅读 · 0 评论 -
JavaAPI中文1.8
Java1.8中文api文档:链接:https://pan.baidu.com/s/1Jco5GoOwuHzz3H_yPkrfaw提取码:31x3转载 2018-12-02 20:41:34 · 231 阅读 · 0 评论 -
list.add()报错
使用泛型创建一个对象数组List<E> list = null;list.add(e); list.add()无法添加对象,是因为被赋值为null的时候,无法添加改为ArrayList<E> list = new ArrayList<E>();list.add(e);这样就能成功添加对象了...原创 2018-12-02 22:41:21 · 3328 阅读 · 0 评论 -
Spring boot学习之路
面试过了,主管扔了一份技术栈给我,看了一下,springboot完完全全没有听说过。于是就开启了我的学习之路,在学习之前要复习一下Spring知识点spring 1.x 时代使用xml配置spring 2.x 时代随着jdk1.5带来的注解支持,spring提供了Bean的声明配置(@Component、@Service、@Contrller等)在后来就推荐Java配置,使用注解方式进行配置...原创 2019-01-24 23:13:51 · 134 阅读 · 0 评论 -
JVM——字节码指令
字节码简介Java虚拟机的指令由一个字节长度、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成。由于Java虚拟机采用面向操作数栈而不是寄存器的架构,所以大多数指令都不包含操作数,只要有一个操作码。字节码=操作码+操作数(非必须)字节码指令集是一种具有鲜明特点、优劣势都很吐出的指令集合架构,由于限制了Jav...原创 2019-04-26 21:57:09 · 241 阅读 · 0 评论 -
JVM——虚拟机类加载机制
概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。在Java语言里面,类型的加载、连接和初始化过程都是程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实...原创 2019-04-27 21:39:15 · 156 阅读 · 0 评论 -
JVM学习历程---(虚拟机结构图)
程序计数器(Program Counter Register)较小的内存空间,看做当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就说通过改变这个计数器的值来取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。线程独立拥有,相互不影响。执行Java方法时,记录的是正在执行的虚拟机字节码指令地址执行Native ...原创 2019-04-23 17:38:28 · 330 阅读 · 0 评论 -
JVM的对象
对象创建的几种方法这部分的内容回头再补充使用new关键字创建:Object object = new Object();Class类下的newInstance()方法:Object objet = Class.class.newInstance();Constructor类下的newInstance()方法对象的内存分配将Java堆的内存空间看成两部分,一部分是使用...原创 2019-04-23 23:21:22 · 141 阅读 · 0 评论 -
JVM的GC
垃圾收集(Garbage Collection, GC)虚拟机中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出有条不紊地执行着出栈和入栈操作。-----------(这几个区域的内存分配和回收都具备确定性,在这个几个区域内就不需要过多考虑回收的问题,因为方法结束或线程结束,内存自然就跟随着回收了)Java堆和方法区则不一样,一个接口中多个实现类需...原创 2019-04-24 10:57:56 · 118 阅读 · 0 评论 -
JVM中的安全点
什么是安全点?在 JVM 中如何判断对象可以被回收 一文中,我们知道 HotSpot 虚拟机采取的是可达性分析算法。即通过 GC Roots 枚举判定待回收的对象。那么,首先要找到哪些是 GC Roots。有两种查找 GC Roots 的方法:一种是遍历方法区和栈区查找(保守式 GC)。一种是通过 OopMap 数据结构来记录 GC Roots 的位置(准确式 GC)。很明显,保守式 ...转载 2019-04-24 15:36:57 · 2274 阅读 · 1 评论 -
JVM——虚拟机字节码执行引擎
概述执行引擎是Java虚拟机最核心的组成部分之一。“虚拟机”是相对于一个“物理机”的概念,这两种都有代码执行能力,其区别是物理机的执行是直接建立在处理器、硬件、指令和操作系统层面的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。不同虚拟机的实现里面,执行引擎在执行Java代码的时候可能会有解释执行(通过解释器执行...原创 2019-04-29 10:57:13 · 141 阅读 · 0 评论 -
Java-动态代理
目标:学习跟随着书:“Java EE互联网轻量型级框架整合开发,代码也来自这本书。”1、学习反射技术,掌握反射的基本概念Java反射技术应用广泛,它能够配置:类的全限定名(绝对路径)、方法和参数,完成对象的初始化,甚至是反射某些方法。这样就能可以大大增强Java的可配置性。Java的反射内容繁多,包括对象构建、反射方法、注解、参数、接口等。在Java中,反射是通过包java.lang.re...原创 2018-12-02 20:16:11 · 198 阅读 · 0 评论