Java基础
lovezhaohaimig
这个作者很懒,什么都没留下…
展开
-
JVM调优
1.GC调优思路a.分析场景例如:启动速度慢;偶尔出现响应慢于平均或者出现卡顿b.确定目标内存占用,低延时,吞吐量c.收集日志通过参数配置收集GC日志;通过JDK工具查看GC状态d.分析日志使用工具辅助分析日志,查看Gc次数,GC时间e.调整参数切换垃圾收集器或者调整收集器参数2.JVM调优常用命令1.查看进程号jcmd | grep "perf...原创 2019-10-19 23:11:57 · 197 阅读 · 0 评论 -
GC
堆与方法区原创 2018-06-06 21:37:11 · 131 阅读 · 0 评论 -
MQ
原创 2018-05-30 21:50:29 · 102 阅读 · 0 评论 -
finalize方法总结
1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Java中的finalize的调用具有不确定性不建议用finalize方法完成“非内存资源”的清理工作,但建议用于:...原创 2018-06-01 23:38:17 · 377 阅读 · 0 评论 -
FutureTask原理实现
park unpark 和wait notify有什么区别吗park unpark 没有先后时间wait notify 有先后时间 :一定是wait 再notify原创 2018-06-09 21:28:11 · 909 阅读 · 0 评论 -
实现前后端分离
为什么选择前后端分离在以前传统的网站开发中,前端一般扮演的只是切图的工作,只是简单地将UI设计师提供的原型图实现成静态的HTML页面,而具体的页面交互逻辑,比如与后台的数据交互工作等,可能都是由后台的开发人员来实现的,或者是前端是紧紧的耦合后台。比如,以前淘宝的Web基本上都是基于MVC框架webx,架构决定了前端只能依赖后端。所以他们的开发模式依然是,前端写好静态demo,后端翻译成VM模版,这...原创 2018-06-29 10:42:05 · 291 阅读 · 0 评论 -
mybatis工作原理
m原创 2018-06-10 20:39:27 · 558 阅读 · 0 评论 -
mybatis做like模糊查询
<!-- ******************** 模糊查询的常用的3种方式:********************* --> <select id="getUsersByFuzzyQuery" parameterType="User" resultType="User"> select <include refid="columns&quo转载 2018-12-14 23:28:55 · 295 阅读 · 0 评论 -
集合不安全
1.list集合a.故障现象异常:java.util.ConcurrentModificationExceptionb.导致原因:并发读写c.解决方案:List list = new Vector();List list = new Collections.synchronizedList(new ArrayList<>());List list = new ...原创 2019-07-13 21:21:57 · 93 阅读 · 0 评论 -
ideal
/** * create by: zhaohaiming * create time: $date$ $time$ * description: $TODO$ */原创 2019-08-16 17:08:49 · 538 阅读 · 0 评论 -
X/OPen
https://www.cnblogs.com/zhongshiqiang/p/7086137.htmlhttps://www.cnblogs.com/baiwa/p/5328722.html原创 2018-05-30 20:50:04 · 125 阅读 · 0 评论 -
NIO资料
Java NIO 系列教程 原文地址 作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。Java NIO: Channels and Buffers(通道和缓冲区)标准的IO基于字节流和字符流进行操...转载 2018-05-30 14:44:50 · 121 阅读 · 0 评论 -
彻底理解Java深克隆和浅克隆的原理及实现
一、为什么要克隆?答案是:克隆的对象可能包含一些已经修改过的属性,保留着你想克隆对象的值,而new出来的对象的属性全是一个新的对象,对应的属性没有值,所以我们还要重新给这个对象赋值。即当需要一个新的对象来保存当前对象的“状态”就靠clone方法了。那么我把这个对象的临时属性一个一个的赋值给我新new的对象不也行嘛?可以是可以,但是一来麻烦不说,二来,大家通过上面的源码都发现了clone是一个nat...原创 2018-05-19 11:08:09 · 34700 阅读 · 18 评论 -
接口与抽象类有何区别
从语法层面而言,接口和抽象类的区别如下:1.抽象类可以提供成员方法的实现细节,而接口中只能存在抽象方法(默认 public abstract)2.抽象类中的成员变量可以是多种类型,而接口中的成员变量必须用public static final(常量)修饰3.一个类只能继承一个抽象类(单继承),但可以实现多个接口(多继承)。4.抽象类中允许含有静态代码块和静态方法,而接口类不从设计层面而言...原创 2018-05-20 14:42:47 · 169 阅读 · 0 评论 -
ArrayList深入解析
简介ArrayList 是 java 集合框架中比较常用的数据结构了。继承自 AbstractList,实现了 List 接口。底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。成员变量ArrayList 底层是基于数组来实现容量大小动态变化的...原创 2018-05-27 00:11:09 · 328 阅读 · 0 评论 -
Linkedlist详解
一. 概述LinkedList 是 Java 集合中比较常用的数据结构,与 ArrayList 一样,实现了 List 接口,只不过 ArrayList 是基于数组实现的,而 LinkedList 是基于链表实现的。所以 LinkedList 插入和删除方面要优于 ArrayList,而随机访问上则 ArrayList 性能更好。除了 LIst 接口之外,LinkedList 还实现了 Dequ...原创 2018-05-27 00:17:32 · 2718 阅读 · 2 评论 -
Java7 ConcurrentHashMap详解
Java7 ConcurrentHashMapConcurrentHashMap 和 HashMap 思路是差不多的,但是因为它支持并发操作,所以要复杂一些。整个 ConcurrentHashMap 由一个个 Segment 组成,Segment 代表”部分“或”一段“的意思,所以很多地方都会将其描述为分段锁。注意,行文中,我很多地方用了“槽”来代表一个 segment。简单理解就是,Concur...原创 2018-05-27 09:41:16 · 1285 阅读 · 0 评论 -
Object有哪些基本的方法
1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。2.getClass方法final方法,获得运行时类型。3.toString方法该方法用得比较多,一般子类都有覆盖。4.finalize方法该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。5...原创 2018-06-03 22:39:07 · 762 阅读 · 0 评论 -
Java 集合系列(3): fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
概要前面,我们已经学习了ArrayList。接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解。1 fail-fast简介fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线...原创 2018-05-29 12:31:39 · 499 阅读 · 0 评论 -
java8
1.Optional原创 2018-05-29 21:07:15 · 92 阅读 · 1 评论 -
线程池
背景相信大家在面试过程中遇到面试官问线程的很多,线程过后就是线程池了。从易到难,都是这么个过程,还有就是确实很多人在工作中接触线程池比较少,最多的也就是创建一个然后往里面提交线程,对于一些经验很丰富的面试官来说,一下就可以问出很多线程池相关的问题,与其被问的晕头转向,还不如好好学习。此时不努力更待何时。什么是线程池?线程池是一种多线程处理形式,处理过程中将任务提交到线程池,任务的执行交由线程池来管...原创 2018-05-29 22:19:41 · 122 阅读 · 0 评论 -
实现多线程的方式
Java中实现多线程的方式有下面三种:继承Thread类,重写run方法package fs;public class ThreadTest { public static void main(String[] args) { new MyThread().start(); }}class MyThread extends Thread { @Override ...原创 2018-05-29 23:41:40 · 90 阅读 · 0 评论 -
Future和FutureTask的区别
java中有Future和FutureTask这两个类Future是一个接口,代表可以取消的任务,并可以获得任务的执行结果FutureTask 是基本的实现了Future和runnable接口 实现runnable接口,说明可以把FutureTask实例传入到Thread中,在一个新的线程中执行。 实现Future接口,说明可以从FutureTask中通过g...原创 2018-05-18 00:01:10 · 4658 阅读 · 2 评论