- 博客(27)
- 资源 (5)
- 收藏
- 关注
转载 ReentrantLock实现原理详解
转载自http://www.jb51.net/article/105762.htm以下是本篇文章的大纲1 synchronized和lock 1.1 synchronized的局限性 1.2 Lock简介2 AQS3 lock()与unlock()实现原理 3.1 基础知识 3.2 内部结构 3.
2017-11-14 16:08:24 519
转载 Java 8系列之重新认识HashMap
转载自https://tech.meituan.com/java-hashmap.html摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨Hash
2017-11-13 14:34:29 371 1
转载 Session机制详解
转自:http://justsee.iteye.com/blog/1570652虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。 一、术语s
2017-11-01 21:47:53 558
原创 Java的同步机制
1 synchronized和lock 1.1 synchronized的局限性synchronized是java内置的关键字,它提供了一种独占的加锁方式。synchronized的获取和释放锁由JVM实现,用户不需要显示的释放锁,非常方便。然而synchronized也有一定的局限性,例如:当线程尝试获取锁的时候,如果获取不到锁会一直阻塞。 如果获取锁的线程进入休眠或者阻塞,除非当前线程异常
2017-11-01 21:47:08 736
原创 OutOfMemoryError
配置VM arguments: -verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 可以显示内存状态等信息堆溢出测试代码public class testOom { static class OOMObject{}; public static void main(String
2017-10-27 21:43:57 338
转载 ReentrantLock实现原理
1 synchronized和lock1.1 synchronized的局限性 synchronized是java内置的关键字,它提供了一种独占的加锁方式。synchronized的获取和释放锁由JVM实现,用户不需要显示的释放锁,非常方便。然而synchronized也有一定的局限性,例如:当线程尝试获取锁的时候,如果获取不到锁会一直阻塞。如果获取锁的线程进入休眠或
2017-10-26 00:46:25 288
原创 线程池
简介概念: 线程池是一种多线程处理行驶,处理过程中将任务添加到队列,然后创建线程后自动启动这些任务。优点 避免线程的创建和销毁带来的性能开销避免大量线程因相互抢占系统资源导致的阻塞能够对线程进行简单的管理并提供定时执行、间隔执行等功能Java通过Executors提供四种线程池newCachedThreadPool : 可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用
2017-10-25 14:50:40 299
原创 Spring AOP基础
AOP概念面向切面编程AOP希望将分散在各个业务逻辑代码中的相同代码通过横向切割的方式抽取到一个独立的模块中,让业务逻辑代码可以专注于业务本身。但如何将这些独立的逻辑融合到业务逻辑中以完成和原来一样的业务流程,是事情的关键,也是AOP要解决的主要问题。AOP术语连接点(Joinpoint) 程序执行的某几个特定位置。Spring仅支持方法的连接点,即仅在方法调用前、方法调用后、方法抛出异常及方法
2017-10-25 14:13:51 349
原创 在IoC容器中装配Bean
Bean的配置信息是Bean的元数据信息,由以下4个方面组成:Bean的实现类Bean的属性信息,如数据源的连接数、用户名、密码等Bean的依赖关系,Spring根据依赖关系配置完成Bean之间的装配Bean的行为配置,如生命周期范围及生命周期各过程的回调函数基于XML的配置采用基于Schema配置方案依赖注入属性注入属性注入指Setter方法注入Bean的属性值或依赖对象构造函数注入需要
2017-10-24 22:18:43 407
原创 IoC容器
BeanFactory和ApplicationContextBeanFactory:IoC容器。Spring框架最核心的接口,提供了高级IoC的配置机制。是Spring框架的基础设施,面向Spring本身 ApplicationContext:应用上下文,Spring容器。面向使用Spring框架的开发者,更易于创建实际应用。BeanFactoryBeanFactory是一个类的通用工厂,可以创建
2017-10-23 22:29:05 365
原创 Spring Boot具体细节
注解@SpringBootApplication:开启了Spring的组件扫描和Spring Boot的自动配置功能,有三个注解组合 Spring的@Configuration:表明该类使用Spring基于Java的配置Spring的的@ComponentScan:启动组件扫描,使得所写的Web控制器类和其他组件被自动发现并注册为Spring应用程序上下文里的BeanSpring的的@Com
2017-10-22 22:27:05 303
转载 Linux五种IO模型性能分析
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理
2017-10-22 00:09:25 250
原创 Linux IO模型分析
概念理解同步 在发送一个功能调用时,没有得到结果之前,该调用就不返回。 例如普通B/S模式:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事异步 与同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。 例如 ajax请求(异步): 请求通过事件触发->服务器处理(这是浏览器仍然可以作其
2017-10-22 00:07:46 312
原创 TCP协议
概念TCP协议是一种面向连接的、可靠的、基于IP的传输层协议。每条TCP连接只能有两个端口,TCP连接是点对点的。全双工,面向数据流。 TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是应用进程给出的)。TCP报文头部格式序列号(SYN):表示报文所发送的数据的第一个字节的序号确认号(ACK):期望收到对方的下一个报文段数据的第一个字节的
2017-10-21 22:28:10 709
原创 HTTP协议
基础概念HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP是基于请求-响应模式的、无状态的、应用层,规定了浏览器和服务器之间的通信规范,通常用TCP连接方式。HTTP 1.0、1.1 HTTPSHTTP1.0 浏览器和服务器使用短连接,响应玩,立即断开请求的过程:3次握手,请求,响应,断开连接HTTP不保存连接,好处:服务器可以处理更多的连接
2017-10-21 20:13:53 275
原创 Java NIO
概念 NIO出现之前,Java 使用传统Socket实现基本的网络通信功能。当没有客户端对服务器发起请求时,会在accept()阻塞。同时简历连接后read()、write()也会阻塞。 处理多个连接,需要采用多线程的方式,阻塞会导致线程进行上下文切换,是的程序的效率很低。NIO采用非阻塞的方式实现网络通信,提高了效率。实现原理NIO通过Selector、Channel和Buffer实现非阻塞的
2017-10-21 17:57:51 220
原创 Java IO
与Java流操作有关的类或接口 IO流的概念流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类字节流 以字节(8bit)为单位,没有用到缓存字符流 以字符(16bit)为单位,根据码表映射字符,一次可以读多个字节,处理输入输出时用到了缓存 区别
2017-10-21 17:35:33 229
原创 反射和代理
什么是反射反射是程序运行过程中进行自我检查,同时对内部的成员变量进行操作。反正可以在运行时对类进行动态装载,并动态的创建类的对象在运行时分析类的能力 运行时查看对象实现通用的数组操作代码具体功能通过反射机制获取类Class.forName("类的路径")类名.Class实例.getClass()//第一种方式: Classc1 = Class.forName("Employee"
2017-10-21 15:27:56 273
原创 索引简要小结
简介及优势索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。 索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引类型主要分为聚簇索引和辅助索引聚簇
2017-10-10 09:56:45 271
原创 Spring MVC简单小结
简介MVC模式在MVC框架中,控制器(Controller)用于执行业务逻辑并产生模型数据(Model),而视图(View)则用于渲染模型数据 MVC模式,即Model-View-Controller。View指表现层,Model,是用来承载数据的抽象结构,而Controller则是View和Model的桥梁。View存在与前端代码中,Controller,Model存在与后端代码中。 在
2017-10-09 20:58:41 494
原创 Spring简要总结
为什么使用Spring传统Java开发具有高度耦合性,类之间的依赖关系太强,改动一个地方往往牵扯很多类。Spring可以管理对象和对象之间的依赖关系,我们不需要自己建立对象,把这部分工作全部转交给容器完成,具有低耦合,对代码没有侵略性,对服务器没有依赖性特点的框架 Spring整个系列的最最核心的概念当属IoC, AOP,什么是IoC和AOP就不展开了,简而言之,将对象创建过程的职责赋予容器,通
2017-10-09 17:35:55 586
原创 Spring Boot简单小结
什么是Spring BootSpring Boot用来简化新Spring应用的初始搭建以及开发过程,从而快速、敏捷的开发新一代基于Spring框架的应用程序本身不包含Spring框架的核心特性和扩展功能集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail,Tomcat等等)“习惯优于配置”特点创建独立的Spring应用程序嵌入的Tomca
2017-10-08 22:24:05 351
原创 垃圾收集器与内存分配策略小结
对象已死吗引用计数法给对象添加一个引用计数器,每当其他地方引用它,计数值加1;引用失效,计数值减1无法解决对象之间相互循环引用的问题可达性分析算法通过一系列“GC Roots”的对象作为起始点,向下搜索,搜索路径称为“引用链”。如果一个对象到GC Roots没有任何引用链相连时(GC Roots到这个对象不可达),则对象不可用GC Roots对象: 虚拟机栈中引用的对象方法区中类静态属
2017-10-07 20:39:57 299
原创 Java内存区域与内存溢出异常小结
运行时数据区域程序计数器当前字节码的行号指示器线程私有栈区线程私有Java虚拟机栈为虚拟机执行Java方法(即字节码)服务存储局部变量表、操作数栈、动态链接、方法出口等局部变量表:编译期间完成分配 存储基本数据类型、对象引用本地方法栈为执行Native方法服务HotSpot将本地方法栈和虚拟机栈合一Java堆线程共享目的:存放对象实例垃圾回收器管理的主要区域通过-X
2017-10-07 18:36:02 315
原创 Mac OS环境下Selenium的安装
Mac OS环境下Selenium的安装特别感谢简书上一个分享大致流程也如这篇文章所写,不过我在最后阶段出现了一个小问题,记录一下下载pip(Python包管理工具)注意是下载source格式的文件下载PyCharm(Python开发工具)下载Firefox安装解压pip,进入该文件夹,输入指令sudo python setup.py install执行sudo easy_install pip
2017-09-24 22:38:46 1637
原创 Python基础(简明Python教程)
Python基础(简明Python教程)参考简明Python教程基本概念注释符 # 基本数据类型整数、长整数、浮点数(52.3E-4)、复数(-5+4j) 字符串对象运算符与Java基本一致运算符 运算符优先级控制流if语句number = 20guess = int(raw_input('Enter an integer:'))if guess == number
2017-09-24 21:55:32 833
Spring Boot实战 高清扫描完整版
2018-11-05
深入理解Java虚拟机:JVM高级特性与最佳实践 高清扫描完整版
2018-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人