自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

亮子的博客

用技术武装自己

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 LeetCode解题思路--day01

github项目地址LeetCode解题思路--day011.题目ExampleNote2.解题思路example3.代码4.总结1.题目Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elem...

2019-05-31 00:14:51 291

原创 ReentrantLock 实现原理

ReentrantLock 实现原理使用 synchronized 来做同步处理时,锁的获取和释放都是隐式的,实现的原理是通过编译后加上不同的机器指令来实现。而 ReentrantLock 就是一个普通的类,它是基于 AQS(AbstractQueuedSynchronizer)来实现的。是一个重入锁:一个线程获得了锁之后仍然可以反复的加锁,不会出现自己阻塞自己的情况。 AQS...

2018-08-07 17:27:01 216

原创 Java 多线程三大核心

Java 多线程三大核心原子性Java 的原子性就和数据库事务的原子性差不多,一个操作中要么全部执行成功或者失败。JMM 只是保证了基本的原子性,但类似于 i++ 之类的操作,看似是原子操作,其实里面涉及到:获取 i 的值。自增。再赋值给 i。这三步操作,所以想要实现 i++ 这样的原子操作就需要用到 synchronized 或者是 lock 进行加锁处理。如...

2018-08-07 16:00:38 275

原创 Synchronized关键字

synchronized 关键字原理众所周知 synchronized 关键字是解决并发问题常用解决方案,有以下三种使用方式:同步普通方法,锁的是当前对象。同步静态方法,锁的是当前 Class 对象。同步块,锁的是 () 中的对象。实现原理: JVM 是通过进入、退出对象监视器( Monitor )来实现对方法、同步块的同步的。具体实现是在编译之后在同步方法调用前加入一个...

2018-08-07 15:53:57 185

原创 Java 多线程常见问题

Java 多线程常见问题上下文切换多线程并不一定是要在多核处理器才支持的,就算是单核也是可以支持多线程的。 CPU 通过给每个线程分配一定的时间片,由于时间非常短通常是几十毫秒,所以 CPU 可以不停的切换线程执行任务从而达到了多线程的效果。但是由于在线程切换的时候需要保存本次执行的信息,在该线程被 CPU 剥夺时间片后又再次运行恢复上次所保存的信息的过程就成为上下文切换。...

2018-08-07 11:49:59 197

原创 volatile关键字

volatile 关键字前言不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能。首先来看看为什么会出现这个关键字。内存可见性由于 Java 内存模型(JMM)规定,所有的变量都存放在主内存中,而每个线程都有着自己的工作内存(高速缓存)。线程在工作时,需要将主内存中的数据拷贝到工作内存中。这样对数据的任何操作都是基于工作内存(效率提高),并且不能直接操作...

2018-08-07 11:30:42 146

原创 对象创建与内存分配

对象的创建与内存分配创建对象当 JVM 收到一个 new 指令时,会检查指令中的参数在常量池是否有这个符号的引用,还会检查该类是否已经被 加载过了,如果没有的话则要进行一次类加载。接着就是分配内存了,通常有两种方式:指针碰撞空闲列表使用指针碰撞的前提是堆内存是完全工整的,用过的内存和没用的内存各在一边每次分配的时候只需要将指针向空闲内存一方移动一段和内存大小相等区域即...

2018-08-07 09:21:03 253

原创 垃圾回收

垃圾回收 垃圾回收主要思考三件事情:哪种内存需要回收?什么时候回收?怎么回收?对象是否存活引用计数法这是一种非常简单易理解的回收算法。每当有一个地方引用一个对象的时候则在引用计数器上 +1,当失效的时候就 -1,无论什么时候计数器为 0 的时候则认为该对象死亡可以回收了。这种算法虽然简单高效,但是却无法解决循环引用的问题,因此 Java 虚拟机并没有采...

2018-08-07 01:14:57 310

原创 OOM(OutOfMemory)分析

OOM 分析Java 堆内存溢出在 Java 堆中只要不断的创建对象,并且 GC-Roots 到对象之间存在引用链,这样 JVM 就不会回收对象。只要将-Xms(最小堆),-Xmx(最大堆) 设置为一样禁止自动扩展堆内存。当使用一个 while(true) 循环来不断创建对象就会发生 OutOfMemory,还可以使用 -XX:+HeapDumpOutofMemoryErorr...

2018-08-07 00:35:55 328

原创 java运行时的内存划分

Java 运行时的内存划分程序计数器记录当前线程所执行的字节码行号,用于获取下一条执行的字节码。当多线程运行时,每个线程切换后需要知道上一次所运行的状态、位置。由此也可以看出程序计数器是每个线程私有的。虚拟机栈虚拟机栈由一个一个的栈帧组成,栈帧是在每一个方法调用时产生的。每一个栈帧由局部变量区、操作数栈等组成。每创建一个栈帧压栈,当一个方法执行完毕之后则出栈。...

2018-08-06 21:28:17 192

原创 秒杀系统设计

设计一个秒杀系统主要做到以下两点:尽量将请求过滤在上游。尽可能的利用缓存(大多数场景下都是查多于写)。常用的系统分层结构:针对于浏览器端,可以使用 JS 进行请求过滤,比如五秒钟之类只能点一次抢购按钮,五秒钟只能允许请求一次后端服务。(APP 同理)这样其实就可以过滤掉大部分普通用户。但是防不住直接抓包循环调用。这种情况可以最简单的处理:在Web层通过限制一个 U...

2018-08-06 20:46:30 405

原创 HashMap的底层分析

更多 HashMap 与 ConcurrentHashMap 相关请查看这里。HashMap 底层分析 以下基于 JDK1.7 分析。如图所示,HashMap 底层是基于数组和链表实现的。其中有两个重要的参数:容量负载因子容量的默认大小是 16,负载因子是 0.75,当 HashMap 的 size > 16*0.75 时就会发生扩容(容量和负载因子都...

2018-08-01 11:01:16 244

原创 ArrayList/Vector的底层分析

ArrayList/Vector 的底层分析ArrayListArrayList 实现于 List、RandomAccess 接口。可以插入空数据,也支持随机访问。ArrayList相当于动态数据,其中最重要的两个属性分别是: elementData 数组,以及 size 大小。 在调用 add() 方法的时候: public boolean add(E e) {...

2018-08-01 10:07:58 506

原创 深入理解javaScript原型和闭包(1)--- 一切都是对象

“一切都是对象”这句话的重点在于如何去理解对象这个概念 ——-当然,也不是一切都是对象,值类型就不是对象首先我们先看一下javascript中一个常用的运算符—–typeof。typedef输出的几种类型标识,其中undefined、number、string、boolean属于值类型,不是对象;剩下的几种情况—–函数(function() {})、数组([1,’a’,b:20])、对象

2017-11-30 11:11:21 322

原创 Spring容器高级主题

1.1 Spring容器技术内幕 1.1.1 内部工作机制 spring的AbstractApplicationContext是ApplicationContext的抽象实现类,该抽象类的refresh()方法定义了Spring容器在加载配置文件后的各项处理过程,这些处理过程清晰地刻画了Spring容器启动时所执行的各项操作。看refresh()源码://初始化BeanFactory

2017-11-29 17:59:43 348

原创 Spring Ioc基于java反射而远远高于反射---Spring框架三大核心接口

关于最基础的Ioc的概念及其思想,我们在Spring核心功能–Ioc一节中都有过详细的讨论,这里就不多言了!1、java反射 那么,接下来,我们从反射入手,开始Spring征程。看例子:package com.smart.reflect;public class Car { private String brand; private String

2017-11-16 08:44:13 1795

原创 Spring--装配Bean

任何一个成功的应用都是有多个为了实现某一业务目标而相互协作的组件构成的。这些组件必须彼此了解,并且相互协作来完成工作。 上篇文章我们通过一个实例,说明了Spring的重要性。不使用Spring,创建应用之间关联关系的传统方法通常会导致结构严重复杂的代码,这些代码很难被复用也很难进行单元测试。然而在Spring中,对象无需查找或创建与其关联的其他对象。相反的,容器负责把需要相互协作的对象引用

2017-11-13 10:40:31 367

原创 理解Java Spring核心功能之一:控制反转容器(IOC Container)

控制反转空气(IOC Container)是Spring的一个重要基础功能,不喜欢新名词的同学,姑且理解为**组件装配容器**为什么需要Spring 容器 要理解Spring的设计精神,先来看看Spring的设计初衷。 先看没有Spring之前,我们怎么做? 以一个实际情况说明,大家都应该购买过手机。那么你肯定有这样的经历,收到手机,打开包装,

2017-11-10 20:00:28 876 1

原创 java类加载

一、java类加载机制 前几天在学习tomcat内核的时候,应用到了自定义加载类。其实这里是java的难点和重点。今天,我们就从java的类加载机制出发,从顶层到底层详细介绍类加载!1.1 类加载 几乎我看过的所有博客讲解这里是,都是以一段代码开始,这里我也就不例外了: 首先看下面的代码:public class Example { private stati

2017-11-05 14:40:49 443

原创 TOMCAT内核之旅--连接器(Connector)--学习心得(三)

3.1 前言 首先我先针对上一小节最后出现的问题,作出回答,其实很简单,我们要加载一个类的实例,则不粗得到其字节码文件(class文件),eclipse是一个IDE工具,它具有自编译功能,src包下的目录为我们编写的java源文件,而其会自动生成bin包,其下拥有和src包下相同目录,但是其为对应的java文件编译后的字节码文件。 所以,上节课我们出现的异常问题就得以解释,我们

2017-11-04 11:59:46 754

原创 TOMCAT内核之旅--一个简单的Servlet容器--学习心得(二)

前言 上一节我们实现了一个最最最简单的WEB服务器,他的功能只能处理静态资源,而学过javaWEB的同学都知道,我在使用TOMCAT服务器,最基础的功能是能够请求静态页面,但是,我们最主要的是请求servlet,完成后台工作;一、Servlet容器是如何工作的 servlet容器是一个复杂的系统。不过,一个servlet容器要为一个servlet的请求提供服务,基本上有三件事要做:

2017-10-26 10:06:53 529

原创 TOMCAT内核之旅--一个简单的WEB服务器--学习心得(一)

TOMCAT内核之旅–一个简单的WEB服务器–学习心得(一)标签(空格分隔): web服务器一、学习背景 本人是一名大三学生,开始以java学习为主,后来学习了javaWEB,了解到了TOMCAT服务器,很好奇其内部是如何实现的,其与浏览器是如何联系起来的,带着这一系列问题,我开始了TOMCAT的内核之旅。二、知识支撑 本次学习借助HOW TOMCAT WORKS一书,跟随其思路,实现

2017-10-25 01:28:13 720

原创 java泛型

1. 泛型的引出首先,提出看下下面的代码: package book.generic;import java.util.List;import org.junit.Test;import java.util.ArrayList;public class GenericDemo { public static void main(String[] args) { List l

2017-04-08 14:48:59 656 1

NBholter2.zip

本系统足不出户,居家方便快速监测心电图,自助进行心脏听诊。一方面这些测得数据可以推动至我们的云服务专家系统,依靠机器学期、数据分析等互联网前沿技术,对前端采集的数据进行处理,得到诊断结果,推动至Android手机终端。另一方面,手机终端也可以获取心电数据,并将这些数据绘制成心电图,将其可视化。特别的终端还加入亲情关怀,将测量数据以及分析结果以微信分享的方式发送到指定家属微信上,便于监护人及时检测老人们的健康状况。考虑到老年群体的使用习惯,系统在界面进行了特别的设计,如:操作简单,提供使用帮助等。 系统中主要使用的技术有Android UI设计、Android网络通信协议及数据传输、摄像头采集图像、微信分享、软件工程管理等。

2019-05-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除