- 博客(54)
- 资源 (29)
- 收藏
- 关注
原创 Java资深研发工程师P6知识体系整理 三(互联网企业级案例与实战篇)
案例一:互联网企业级业务系统数据中心项目背景:某投行多个部门(如市场部、风控部等)存在数据重复现象,为了解决数据冗余现象,把公用的统一数据放在基于内存的数据中心,实现了全球各个不同的业务部门对共享业务数据的实时统一访问,实时为全球各个不同的业务部门决策提供精确准数据支持,且提供7*24小时的数据安全服务.需求分析:功能需求:(1)统一访问协议和接口高效存取数据(2)分布式缓存分区存储业务对象数据(3)客户端远程连接数据中心服务端业务需求:允许运行时动态更新与监控数据异常性能需求:(1)毫
2020-08-11 14:52:21 439
原创 Java资深研发工程师P6知识体系整理 二(互联网企业级基础架构与实战篇)
互联网企业级基础架构与实战篇互联网企业级基础组件应用与实战JVM调优深入JVM内存区域Java虚拟机历史背景发展运行时内存区域详解深入JVM堆、栈内存区域对象深入方法的调用出入栈详解JVM堆栈参数设定JDK源码深入内存区域JVM执行子系统Class文件内容深入及本质剖析理解并掌握常见的字节码指令双亲委派的类加载机制深入分析基于方法调用,栈帧详解分析JDK源码深入指令执行垃圾回收机制剖析对象存活及生命周期、强弱虚拟引用在Spring框架中的应用GC常见算法、分带垃圾回收GC日志排查、内存泄漏和内存溢出透析内存
2020-07-13 16:47:37 381
原创 Java资深研发工程师P6知识体系整理 一(Java语言核心特性篇)
Java语言核心特性篇核心语言特性反射在框架设计中的应用反射实战-应用场景与总结泛型的规则与类型擦除类型和限制两种泛型的通配符讲解在API设计时使用泛型的方式(自定义泛型类、泛型接口、泛型方法)注解给java带来的优雅之道注解的本质与原理注解定义和应用场景、实现自定义注解元注解和预置注解注解和反射在框架中的实战在函数式接口上更好的使用Lambda表达式优雅的使用Stream操作数据的切片、筛选、过滤在大数据量下归类与计算利器map/reduceSpring框架中的核心类剖析JDK工具包中的核心类剖析数据结构
2020-07-06 16:11:16 1223
原创 JAVA面试系列(五)(类加载顺序)
String, Stringbuffer, StringBuilder 的区别。String 字符串常量(final修饰,不可被继承),String是常量,当创建之后即不能更改。(可以通过StringBuffer和StringBuilder创建String对象(常用的两个字符串操作类)。) StringBuffer 字符串变量(线程安全),其也是final类别的,不允许被继承,其中的绝大多...
2018-04-08 14:14:47 1880
原创 JAVA面试系列(四)XML
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?答:XML文档定义分为DTD和Schema两种形式,二者都是对XML语法的约束,其本质区别在于Schema本身也是一个XML文件,可以被XML解析器解析,而且可以为XML承载的数据定义类型,约束能力较之DTD更强大。对XML的解析主要有DOM(文档对象模型,Document Object Model)、SAX(Simp...
2018-04-03 14:04:07 383
原创 JAVA面试系列(三)字节流和字符流
题目:Java中有几种类型的流?答:字节流和字符流。字节流继承与InputStream、OutputStream,字符流继承于Reader,Writer。在java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。关于Java的I/O需要注意的有两点:一是两种对称性(输入和输出的对称性,字节和字符的对称性);二是两种设计模式(适配器模式和装潢模式)。另外Java中的流不同于C#的是它...
2018-04-03 13:53:40 2417
原创 JAVA面试系列(二)
题目:&和&&的区别?答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算...
2018-04-02 14:42:11 225
原创 JAVA面试系列(一)int和Integer相关的自动拆装箱
题:int和Integer有什么区别?分析:Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。Java 为每个原始类型提供了包装类型...
2018-04-02 10:06:28 606
原创 Java的高并发编程系列(十一)线程池2
ParalleComputing(并行计算)第一种线程池:newFixedThreadPool(固定个数)public class T07_ParalleComputing { public static void main(String[] args) throws InterruptedException, ExecutionException { long ...
2018-03-30 14:30:22 229
原创 Java的高并发编程系列(十)线程池1
认识Executor执行提交的Runnable任务的对象。 这个接口提供了一种将任务提交与每个任务如何运行的机制解耦的方式,包括线程使用,调度等细节。通常使用Executor而不是显式创建线程。 例如,不是为一组任务中的每一个调用新Thread(new(RunnableTask()))。start(),你可以使用: Executor executor = anExecutor; ex...
2018-03-30 11:37:21 237
原创 Java的高并发编程系列(九)并发性容器
ConcurrentMappublic class T01_ConcurrentMap { public static void main(String[] args) { Map<String, String> map = new ConcurrentHashMap<String, String>(); //Map<...
2018-03-29 17:52:28 336
原创 Java的高并发编程系列 (八)火车票面试题解析
有N张火车票,每张票都有一个编号,同时有10个窗口对外售票,请写一个模拟程序。使用Vector或者Collections.synchronizedXXX,分析一下,这样能解决问题吗?public class TicketSeller2 { private static Vector<String> tickets = new Vector<String>...
2018-03-29 16:48:17 881
原创 Java的高并发编程系列(七) ThreadLocal线程局部变量和线程安全的单例模式
ThreadLocal线程局部变量public class ThreadLocal1 { volatile static Person p = new Person(); public static void main(String[] args) { new Thread(()->{ try { ...
2018-03-29 15:18:37 439
原创 Java的高并发编程系列(六)生产者消费者面试题解析
面试题:写一个固定容量同步容器,拥有Put和get方法,以及getCount方法能够支持两个生产者线程以及10个消费者线程的阻塞调用使用wait和notify/notifyAll来实现:public class MyContainer1 <T>{ private final LinkedList<T> lists = new LinkedList<&g...
2018-03-29 15:08:53 1329
原创 Java的高并发编程系列(五)reentrantlock替换synchronized
java高并发编程主要有下面三个组成: 1.同步器synchronized 2.同步容器 3.线程池:threadPool、executort本例中由于test1锁定this,只有test1执行完毕的时候,test2才能执行:public class ReentrantLock1 { public synchronized void test1(){ fo...
2018-03-29 14:43:47 527
原创 Java的高并发编程系列(四)
实现一个容器,提供两个方法,add,size, 写两个线程,线程1添加10个元素到容器中,线程2实现监控元素的个数,当个数到5个时,线程2给出提示并结束,给lists添加volatile之后,t2能够接到通知,但是,t2线程的死循环很浪费cpu,如果不用死循环,该怎么做呢? 这里使用wait和notify做到,wait会释放锁,而notify不会释放锁,需要注意的是运用这种方法,必须要保证t2先...
2018-03-28 16:55:39 3197 1
原创 Java的高并发编程系列(三)
锁定某对象o,如果o的属性发生改变,不影响锁的使用,但是如果o变成另外一个对象,则锁定的对象发生改变,应该避免将锁定对象的引用变成另外一个对象。public class Demo17 { Object o = new Object(); public void test(){ synchronized (o) { while (tru...
2018-03-28 16:22:00 1139
原创 Java的高并发编程系列(二)volatile
挥发性关键字,使一个变量在多个线程间可见 A B线程都用到一个变量,java默认是A线程中保留一份copy,这样如果B线程修改了该变量,则A线程未必知道,使用volatile关键字,会让所有线程都会读到变量的修改值。在下面的代码中,running是存在于堆内存的t对象中 当线程t1开始运行的时候,会把running值从内存中读到t1线程的工作区,在运行过程中直接使用这个copy,并不会每...
2018-03-28 16:18:11 355
原创 Java的高并发编程系列(一)synchronized锁
private int count = 10;public void test(){ synchronized (this) { //任何线程要执行下面的代码,必须先拿到Demo02对象实例的锁 count --; System.out.println(Thread.currentThread().getName() + " count =...
2018-03-28 15:12:39 560
原创 深入JVM原理(十一)Java引用类型
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-08 16:48:30 1218
原创 深入JVM原理(十)G1收集器
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-08 15:51:57 1518
原创 深入JVM 原理(九)JVM垃圾回收策略参数配置
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-08 14:45:08 1470
原创 深入JVM 原理(八)JVM垃圾回收策略
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-08 14:14:00 1542
原创 深入JVM 原理(七)老年代、永久代和元空间
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-08 13:46:35 10855 2
原创 深入JVM 原理(六)年轻代
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-08 11:41:39 1754
原创 深入JVM 原理(五)Java堆内存调整参数(调优关键)
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-08 11:04:10 21083 5
原创 深入JVM 原理(四)JVM垃圾回收流程
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-07 16:49:12 2291 3
原创 深入JVM 原理(三)JVM 垃圾收集
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-07 16:09:03 2354 3
原创 深入JVM 原理(二)Java对象访问模式
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-07 14:44:01 2196
原创 深入JVM 原理(一)Java内存模型
目录 深入JVM 原理(一)Java内存模型:http://blog.csdn.net/qq_34707744/article/details/79278169 深入JVM原理(二)Java对象访问模式: http://blog.csdn.net/qq_34707744/article/details/79279979 深入JVM原理(三)JVM 垃圾收集:http://b...
2018-02-07 11:28:24 5625 2
原创 设计模式(七)迭代器模式(Iterator)
转载请标明出处: http://blog.csdn.net/qq_34707744/article/details/79258391本文出自:【生平少年】迭代器模式UML类图维基百科 在 面向对象程序设计里,迭代器模式是一种设计模式,是一种最简单也最常见的设计模式。它可以让用户通过特定的接口巡访容器中的每一个元素而不用了解底层的实现。此外,也可以实现特定目的版本的迭
2018-02-05 11:39:31 249
原创 设计模式(六)代理模式(Proxy)
转载请标明出处: http://blog.csdn.net/qq_34707744/article/details/79208049本文出自:【生平少年】定义: 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用组成: 抽象角色:通过接口或抽象类声明真实角
2018-01-30 16:48:55 237
原创 设计模式(五)工厂模式(Factory)
转载请标明出处: http://blog.csdn.net/qq_34707744/article/details/79206653本文出自:【生平少年】定义 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。UML图个人理解:比如一个A类中定义了若干方法,而在另一个B类中需要调用A类其中的一个方法,当
2018-01-30 15:31:39 282
原创 设计模式(四)适配器模式(Adapter)
转载请标明出处: http://blog.csdn.net/qq_34707744/article/details/79196911本文出自:【生平少年】维基百科 在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类
2018-01-29 16:31:45 229
原创 设计模式(三)装饰者模式(Decorator)
维基百科定义 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。功能 动态地给一个对象添加一些额外的职责。装饰者模式相较于子类更加灵活,以对客户端透明的方式扩展对象。使用环境 (1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 (2)处理那些可以撤消的职责。 (3)当不能
2018-01-26 15:55:03 176
原创 设计模式(二)观察者模式和发布订阅模式(Observer)
发布 + 订阅 != 观察者模式! 发布 + 订阅 != 观察者模式! 发布 + 订阅 != 观察者模式!重要的事情说三遍,这里必须说明一下,之前百度“观察者模式”,百度是这样定义的: 按照百度的意思,两者是相同的意思,而两者的结构设计还是有本质区别的,之后,我查找维基百科,定义如下:维基百科定义观察者模式 是软件设计模式的一种。在此种模式中,一个目标对象管理所有
2018-01-26 11:05:53 2281
原创 设计模式(一)单例模式(Singleton)
介绍特点:只有一个实例对象存在(因为被 private 修饰)。应用场景: (1)资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。 (2)控制资源的情况下,方便资源之间的互相通信。如线程池等。实现方法(三种): 名称 特点 优点 缺点 饿汉法 在加载类的时候就会创建类的单例,并保存在类中 代码简单 无法
2018-01-25 15:28:30 200
原创 JDK 1.8集合框架 Map、Set、List、Queue、Stack比较
JDK 1.8集合框架基本架构图比较 组件 比较 Map 1、Map是键值对,使用哈希映射,键不能重复,值可以重复。 2、TreeMap可以排列顺序,HashMap为无序的。 3、Map中可以将Key和Value单独抽取出来,其中KeySet()方法可以将所有的keys抽取正一个Set。而Values()方法可以将map中所有的values抽取成一个集合。
2018-01-22 17:19:48 1585
原创 HashTable<k,v>源码解析
源码public class HashtableK,V> extends DictionaryK,V> implements MapK,V>, Cloneable, java.io.Serializable{}从源码中可知,HashTable 继承与 Dictionary 类,同时实现了 Map 、Cloneable、Serializable接口。Diction
2018-01-22 16:10:25 273
多数据源分布式事务管理调研报告.docx
2019-12-30
阿里云linux一键安装web环境
2018-10-01
Charles破解charles.jar
2018-02-05
葛一鸣,深入JVM内核—原理、诊断与优化
2018-02-05
HttpClient工具详细
2017-11-05
uploadDemo
2017-11-05
silviomoreto-bootstrap
2017-11-05
mysql-connector-java-5.1.7-bin.jar
2017-11-05
jquery-ui-bootstrap
2017-11-05
besteasyteam-beginner_admin-master
2017-11-05
AdminLTE后台框架
2017-11-05
des加密C#.
2017-11-05
软件系统说明书模板
2017-09-22
Iframe实例
2017-09-13
bootstrap-4.0.0-beta
2017-09-13
springsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite
2017-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人