Java并发编程之synchronized解析

初学Java多线程的时候,遇到需要线程同步的地方,总是会用到synchronized关键词。很简单的就是帮助我们实现预想的“效果”。殊不知,synchronized是一个重量级的锁,使用不当的话其实会使我们程序执行的效率大打折扣。以下, 一:synchronized的作用范围 synchr...

2019-03-16 18:13:50

阅读数 34

评论数 0

Java并发编程之线程状态与创建线程的方式

在Java并发编程中,线程所处的状态以及创建线程的方式算是’开学第一课’了。而从本文开始,我将对Java并发做一个系统的认识。话不多说,开始进入主题。 一:线程状态 在Thread类中详细的枚举了线程的状态,如下: public enum State { /** ...

2019-03-02 13:41:42

阅读数 66

评论数 0

Spring源码分析之createBean主流程分析

我们知道,在调用getBean获取bean实例的实例,首先会从缓存中获取bean实例,如果没有获取到,就会去创建bean的时候。关于获取bean实例,可以参考Spring源码分析之getBean主流程分析,而本文将会对创建bean实例的主流程来做一个分析。而入口,当然是createBean(Abs...

2019-01-20 15:21:35

阅读数 75

评论数 0

Spring源码分析之getBean主流程分析

当我们通过向Spring容器获取某个bean的时候,总是调用Spring中重载的各种getBean方法。那么,getBean中的流程是什么样的? 通过本文,你将对getBean方法的主流程有一个详细的认识。 入口当然是getBean方法: public Object getBean(St...

2019-01-08 23:23:35

阅读数 72

评论数 0

cglib动态代理实现原理详细分析

在之前Java代理模式中大致的分析了下代理模式的类型及对每种代理类型简单的举例了下。在上篇JDK动态代理实现原理详细分析中,对其JDK代理的流程做了一个详细的分析。而本文,将介绍另一种动态代理模式:cglib动态代理。阅读完本文,你将对cglib代理模式的运行的流程有一个清晰的认识。 本文的目录...

2019-01-01 18:29:08

阅读数 173

评论数 0

JDK动态代理实现原理详细分析

在之前Java代理模式中大致的分析了下代理模式的类型及对每种代理类型简单的举例了下。本文将对JDK动态代理进行详细的分析。读完本文,你将对JDK的动态代理的运行流程,生成的代理类结构以及实现的原理有一个更加深入的认识。 本文将从以下几个方面概述: 目录 一:JDK动态代理简单样例 二:JD...

2018-12-15 17:10:24

阅读数 191

评论数 0

Spring源码分析之BeanFactory初始化

在上一篇Spring源码分析之IOC容器创建过程中,大致梳理了一下IOC容器初始化的流程。在初始化的过程中,会调用模板方法refresh(),在刷新工厂方法中,首先会获取beanFactory,即以下这行代码: ConfigurableListableBeanFactory beanFacto...

2018-12-11 12:26:23

阅读数 117

评论数 0

Spring源码分析之IOC容器创建过程

我们知道,Spring框架基于IOC容器能够实现依赖注入,使代码之间不在具有高度的耦合关系.解耦给问我们带来很多的好处,不仅会使我们的代码更加容易扩展维护,同时也更加方便测试。 在Spring中,我们常使用ClassPathXmlApplicationContext(类路径下读取配置),XmlW...

2018-12-04 23:14:35

阅读数 401

评论数 0

小结

新的一年,希望自己能够多看一些专业书籍,加油!

2017-12-31 22:51:12

阅读数 67

评论数 0

MAVEN工程JAR包丢失问题

问题背景: Tomcat 服务器运行一个Maven工程后,重新加入另一个之前能够运行的Maven工程一直失败,并报一下错误.java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLis...

2017-11-28 14:57:40

阅读数 1828

评论数 0

SpringMVC+Spring+Mybatis基于Maven的整合

其整合工程的目录结构如下:首先是pom.xml文件中的内容:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...

2017-10-28 22:16:39

阅读数 234

评论数 0

互联网协议入门(二)

上一篇分析了互联网的总体构思,从下至上,每一层协议的设计思想。这是从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。互联网协议入门(二)(接上文)七、一个小结先对前面的内容,做一个小结。我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者...

2017-09-30 16:32:53

阅读数 105

评论数 0

互联网协议入门(一)

我们每天使用互联网,你是否想过,它是如何实现的?全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送出信号,洛杉矶的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?互联网的核心是一系列协议,总称为”互联网协议”(Internet Protocol S...

2017-09-30 16:04:13

阅读数 105

评论数 0

排序算法之快速排序

快速排序每趟排序的结果是:在选取的基准值得左边全部比其小,而右边都比其大。 下面的采用快速排序第一遍的演示: 其代码(Java)如下: import java.util.Arrays;/** * 快速排序 * * @author sg */ public class TestQu...

2017-09-30 15:27:17

阅读数 108

评论数 0

二分查找之Java实现

非递归与递归两种方法实现:/** * 二分查找:非递归的方法 * 缺点:有序数组中含有多个待查找的数值的时候,这种方法只能显示一个 * @param src //带查找的有序数组 * @param des //带查找的数值 * @return ...

2017-08-18 13:09:49

阅读数 132

评论数 0

Spring 之通知的类型以及切面的优先级

Spring AOP编程,即面向切面编程,那么什么是切面?先看下面的例子:一个简单的加减乘除public interface Calculate { int add(int x,int y); int sub(int x,int y); int mul(int ...

2017-07-08 18:31:32

阅读数 922

评论数 0

Spring之自动装配

Spring自动装配分为利用xml配置文件配置和注解的方式进行自动装配两大类xml配置(常用): byType:通过类型来装配bean byName:通过名称来装配bean //接口dao: package com.sg.dao; public interface UserDao { ...

2017-07-07 12:40:50

阅读数 287

评论数 0

Spring之创建bean的方式

学习Spring有一段时间了,这里会把一些知识点给梳理一遍。这里要说到的是-Spring创建bean的四种方式:整个工程的目录结构,用maven进行了管理: 配置文件applicationContext.xml:<?xml version="1.0" encoding=...

2017-07-06 15:13:17

阅读数 433

评论数 0

Java并发编程之CountDownLatch

在Java.util.concurrent包下,有一个CountDownLatch类。官方定义:A synchronization aid that allows one or more threads to wait untila set of operations being performe...

2017-06-12 00:26:24

阅读数 431

评论数 0

Java并发编程之CAS算法

在多线程环境下,我们要实现对一个变量自增的话,往往会使用java.util.concurrent.atomic包下的相关实现类。 如下:public class TestAtomic { public static void main(String[] args) { Th...

2017-06-11 11:16:21

阅读数 713

评论数 0

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