Java
yjnmomo
SCUT Master Candidate(2020毕业)
Interests:3D Imaging
QQ:893646970
Github:https://github.com/DescartesM
C/C++, Java
展开
-
深入理解JVM(一)
深入理解JVM(一)第1章 走进Java1.Java语言、JavaAPI、JVM合称JDK2.JavaSE API和JVM合称JRE3.Java只提供了相对安全的内存管理和访问机制,避免了大部分的内存泄漏和指针越界(比如new出来的东西)。...原创 2018-05-01 21:25:39 · 124 阅读 · 0 评论 -
SpringMVC流程
0. 前置概念JavaEE体系结构包括四层,从上到下分别是应用层、Web层、业务层、持久层。Struts和SpringMVC是Web层的框架Spring是业务层的框架Hibernate和MyBatis是持久层的框架。SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就...原创 2019-04-16 16:36:27 · 193 阅读 · 0 评论 -
Java线程池
0. 什么是线程池百度百科:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAlive...原创 2019-04-06 16:05:16 · 149 阅读 · 0 评论 -
Rabbitmq消息队列
一般方案的劣势链式调用是我们在写程序时候的一般流程,为了完成一个整体功能,会将其拆分成多个函数(或子模块),比如模块A调用模块B,模块B调用模块C,模块C调用模块D。但在大型分布式应用中,系统间的RPC交互繁杂,,这种架构有如下几个劣势:接口之间耦合严重需求改变了,代码需要多处修改面对大流量并发时,容易被冲垮。每个接口模块的吞吐能力是有限的存在性能问题。RPC接...原创 2019-03-04 20:51:25 · 410 阅读 · 0 评论 -
工厂模式——Java实现
1.简单工厂目的:在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。原理:简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。客户类往往有多个,如果不使用简单工厂,那么所有的客户类都要知道所有子类的细节。而且一旦子类发生改变...原创 2019-03-03 16:11:57 · 129 阅读 · 0 评论 -
单例模式(最简单&&常问)——Java实现
目的:确保一个类只有一个实例,并提供该实例的全局访问点。原理:使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。个人通俗解释:核反应堆控制,线程池之类资源管理相关。所以特别需要考虑线程安全性。实现方案:懒汉式-线程不安全以下实现中,私有静态变量 uniqueInst...原创 2019-03-03 16:11:37 · 150 阅读 · 0 评论 -
手写代码模块(Java实现)——笔试答题常用Model
手写代码模块(Java实现)——笔试答题常用Model1.因式分解Input:整数Output:因数链表 public static ArrayList<Integer> Factorization(int n) { ArrayList<Integer> list = new ArrayList<Integer>(); ...原创 2019-02-23 23:45:30 · 1139 阅读 · 0 评论 -
手写代码模块(Java实现)——常用笔试算法思路模板
手写代码模块(Java实现)——常用笔试算法思路模板1.递归例题:剑指Offer 25. 合并两个排序的链表public ListNode Merge(ListNode list1, ListNode list2) { if (list1 == null) return list2; if (list2 == null) return list...原创 2019-02-23 23:44:05 · 896 阅读 · 0 评论 -
手写代码模块(Java实现)——树
手写代码模块(Java实现)——树0.Previous Prepare (TreeNode)private class TreeNode&lt;T&gt;{ private T data; private TreeNode&lt;T&gt; left; private TreeNode&lt;T&gt; right; publ.原创 2019-02-23 23:41:18 · 529 阅读 · 0 评论 -
BlockingQueue阻塞队列实现消费者生产者模型
BlockingQueue阻塞队列实现消费者生产者模型 阻塞队列提供了可阻塞的put和take方法,以及支持定时的offer和poll方法。这一结构非常适合用于实现生产者——消费者这种设计模式。示例: 下面给出的例子实现一个给定路径的桌面搜索的功能(扫描给定路径上的文件并建立索引)。生产者import java.io.File;import java....原创 2018-05-31 23:36:35 · 287 阅读 · 0 评论 -
深入理解JVM(四)
深入理解JVM(四)第6章 类文件结构1. 任何一个Class文件都对应唯一一个类或者接口。但反之不一定成立。(类和接口也可以通过类加载器直接生成)。2.Class中文件字节序为大端。(大端:高低低高)(Intel的x86是小端)3.每个Class文件开头4个字节叫魔数,Class是0xCAFEBABE。(恶心心。 话说当年看廖雪峰讲Win创建txt开头的4个...原创 2018-05-31 23:29:21 · 171 阅读 · 0 评论 -
Java中的闭锁
闭锁1.定义: 闭锁是一种同步工具,可以延迟线程直到其达到其终止状态。例如:DOTA2中匹配等待点确定界面的设计,需要等待所有十个玩家都点就绪才能继续进行。其实也有些类似于之前CUDA编程中用到的 __syncthreads()方法去同步同一个块内的线程。2.实现CountDownLatch是一种灵活的闭锁实现。一般会把StartGate设置1,EndGate...原创 2018-05-21 14:32:12 · 4759 阅读 · 1 评论 -
深入理解JVM(三)
深入理解JVM(三)第3章 垃圾收集器与内存分配策略 Java和C++之间有一堵内存动态分配和垃圾回收的高墙,墙外面的人想进来,墙里面的人却想出来。1.判断对象是否死亡a)引用计数法(c++中smart pointer &amp; python)有人引用我,我就还有价值不会被GC,直到计数为0,我就真的完蛋了。(CoCo中的RememberMe)...原创 2018-05-10 13:58:35 · 196 阅读 · 0 评论 -
手写代码模块(Java实现)——排序
手写代码模块(Java实现)——排序代码呈现为函数封装形式, 接口统一为数组int [] array1.冒泡排序public static void BubbleSort(int [] a){ int i, j; int n = a.length; for(i=0; i&amp;lt;n; i++){//n次排序。 for(j=1; j&amp;lt;n...原创 2019-02-23 23:42:47 · 791 阅读 · 0 评论 -
CentOS7下编译OpenJDK8源码
转载From: MR.HE ,博客链接为 https://blog.csdn.net/hxm_Code/article/details/77417709本来想自己编译openJDK10的,结果编译的时候遇到了一些问题,可能是机子的GCC版本问题吧(我猜要升级到5+),后来参考这篇文章完成了openJDK8的编译。 ...转载 2018-05-08 22:02:36 · 642 阅读 · 0 评论 -
深入理解JVM(二)
深入理解JVM(二)第2章 Java内存区和内存溢出异常1.Java运行时数据区1.1程序计数器 PCRa)通过改变PCR的数值来选取下一条需要执行的字节码指令。b)一个内核只会执行一条线程中的指令。所以单核多线程是SBc)PCR区域是线程私有的。1.2 Java虚拟机栈a)他有一个局部变量表存放编译期已知的各种基本数据类...原创 2018-05-01 21:26:08 · 131 阅读 · 0 评论 -
git使用
常用命令git status // 查看本地代码状态git add fileName.cpp // 添加代码到缓存区git commit -m '提交内容的备注' // 提交代码到本地仓库git checkout -b branchName // 不加-b就是普通切换分支git fetch -p // 同步远端分支状态git pull -r origin branchName // f...原创 2019-09-07 22:00:19 · 177 阅读 · 0 评论