java笔记
文章平均质量分 60
4年工作经验,总结分享java领域相关的知识
大漠穷秋_
不停于现状,不止于代码
展开
-
了解Synchronzied原理一篇就够了!
这里写自定义目录标题原理底层原理monitor监视器锁什么是monitor?synchronized 加锁方式原理synchronized 内置锁是一种对象所,作用力度是对象,可以用来实现对临街资源的同步互斥访问,可重入;加锁方式:- 同步实例方法,锁得是当前实例对象;- 同步类方法,所得是当前类对象;- 同步代码块,所得是括号里的对象;底层原理synchronized是基于JVM内置锁实现,通过内部对象Monitor(监视器锁)实现,基于进入与退出Monitor对象实现方法与代码 块同步,原创 2021-10-18 21:50:04 · 539 阅读 · 0 评论 -
深入理解java动态代理
AOP,Aspectj,Spring AOP 前世今生AOP 是要实现在我们原来写的代码的基础上,进行一定的包装,如方法执行前,方法返回后,方法跑出异常后等地方进行一定的拦截处理或者叫增强处理。AOP 的实现并不是因为java提供了什么神奇的狗子,可以把方法的几个生命周期告诉我们,而是我们要实现一个代理,实际运行的实例是生成的代理类的实例。动态代理。默认如果使用接口,用JDK动态代理,如果没有接口,使用CGLIB实现。Spring 3.2 以后,spring-core直接把CGLIB和ASM的源码原创 2021-10-08 23:52:41 · 265 阅读 · 0 评论 -
nacos-naming 模块日志设计实现及思想
nacos作为注册中心,naming模块是其实现的主要位置,这里发现其日志实现比较有特色,简单讲一下。一.日志类模块位置如下:不同的模块使用不通的日志路径做区分,直接上代码,public class Loggers { public static final Logger PUSH = LoggerFactory.getLogger("com.alibaba.nacos.naming.push"); public static final Logger CHECK_RT = Lo原创 2021-08-05 10:40:16 · 1178 阅读 · 0 评论 -
排序算法汇总
1.选择排序 //选择排序 static void chooseSort(int [] data) { for (int i=0;i<data.length-1;i++) { int smallIndex = i; for (int j=i+1 ;j<data.length;j++) {// 0-i 已经排好,从i+1开始排序 if (data[i]>data[j]) {原创 2021-03-16 14:06:13 · 146 阅读 · 0 评论 -
微服务的缺陷和应用
微服务是近几年非常火热的架构设计理念,我们需要正确理解微服务,否则如果只是跟风拿来就用,既不会用,也用不好,用了不但没有效果,反而还可能有副作用。今天我们就来深入理解微服务,如何避开陷阱,设计一个成功的微服务架构一. 微服务缺陷1.服务划分过细,服务间关系复杂服务划分过细,单个服务的复杂度确实下降了,但整个系统的复杂度却上升了,因为微服务将系统内的复杂度转移为系统间的复杂度了。从理...转载 2018-10-07 20:55:12 · 3261 阅读 · 0 评论 -
volatile 作用简单总结
volatile 作用:1:保证可见性;2:防止指令重排 ;3:一定的原子性1:共享元素的改变,直接写回主存中,同时通知其余线程刷新缓存,读取最新的值,防止脏读;2:对于没有依赖的指令,jvm会进行指令重排,有可能使程序失效;3.原子性(保证一定的原子性),可以保证对于double 的操作,是原子性的,不会在程序对其进行操作的时候,被打断,造成脏读;至于保证一定的原子性 而言,主要是针对long...原创 2018-07-15 14:42:07 · 869 阅读 · 0 评论 -
海量数据下 BitMap 理解及应用场景
1 .问题引入 在给定的一台4G的PC机器上实现,一个包含40亿个不重复并且没有排过序的无符号的int整数,给出一个整数,找出给定的某个数 m,是否在文件40亿个数据当中的需求。 需求分析:Int类型在Java中的存储占用4个Byte,32Bit,如果在内存中定义40亿个int类型数组来读取文件,占用大小:(40*100000000*4/1024/1024/1024)G=14.901G。...原创 2018-07-06 17:41:02 · 5945 阅读 · 5 评论 -
java三种排序算法的实现
三种简单排序算法(java实现)一、冒泡排序算法思想:遍历待排序的数组,每次遍历比较相邻的两个元素,如果他们的排列顺序错误就交换他们的位置,经过一趟排序后,最大的元素会浮置数组的末端。重复操 作,直到排序完成。示例演示: 待排序数组:4,3,7,6,9 第一趟:9,7,3,4,6原创 2017-11-26 22:57:02 · 1035 阅读 · 0 评论 -
Java多线程之volatile作用阐述
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要特性:互斥(原创 2017-11-26 20:14:25 · 322 阅读 · 0 评论 -
Hadoop 简介(Form Imoc)
看了网络上关于Hadoop的介绍,原创 2017-11-21 19:38:22 · 294 阅读 · 0 评论 -
Hadoop安装教程_单机配置_Hadoop1.2.1/Ubuntu16.04
最近在自己的Ubantu16.04安装Hadoop,折腾了一天,参考了一些教程,也遇到了一些坑,最后终于搞定了,在这里分享一下经验和过程。 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛。尽管安装其实很简单,书上有写到,官方网站也有 Hadoop 安装配置教程,但由于对 Linux 环境不熟悉,书上跟官网上简略的安装步骤新手往往 Hold 不住。加上网上不少教程也甚是原创 2017-11-19 12:09:15 · 747 阅读 · 0 评论 -
java 匿名内部类
匿名内部类适合创建那种只需要一次使用的类,例如命令模式时所需要的Command对象。匿名内部类的语法有点奇怪,创建匿名内部类时会立即创建一个该类的实例,这个类定义立即消失,匿名内部类不能重复使用。 定义匿名内部类的格式如下:[java] view plain copynew 父类构造器(参数列表)|实现接口() { /转载 2017-10-16 12:28:25 · 260 阅读 · 0 评论