- 博客(25)
- 收藏
- 关注
原创 java线程池初识
java线程池初识概述当有多个请求到服务器需要新建线程来执行任务时,如果为每个请求都新建线程的话,那么服务器资源开销比较大,因此使用一个容器来管理线程,当请求到来的时候就从容器中取出空闲线程来处理。线程池和数据库连接池很类似,都是为了解决频繁创建比较耗资源的对象。在执行并发任务时,我们可以把任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程,只要池里有空闲的线程,任务就会分配一个线程
2016-04-11 23:03:30 433
原创 SLF4J日志框架
SLF4J日志框架概述日志框架对于java开发者来说并不陌生,并且其作为线上产品分析bug的有力工具。Java的简单日志门面( Simple Logging Facade for Java SLF4J)作为一个简单的门面或抽象,用来服务于各种各样的日志框架,比如java.util.logging、logback和log4j。SLF4J允许最终用户在部署时集成自己想要的日志框架。SLF4J就类似于J
2016-04-11 17:11:40 2356
原创 java 关键字 volatile初识
java 关键字 volatile初识概述JMM提供了volatile变量定义、final、synchronized块来保证可见性。用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的值。volatile很容易被误用,用来进行原子性操作。volatile关键字的两层语义1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立
2016-04-11 14:42:35 2081
原创 ThreadLocal认知学习
ThreadLocal认知学习概述java doc介绍This class provides thread-local variables. These variables differ fromtheir normal counterparts in that each thread that accesses one (via itsget or set method) has its own
2016-04-11 11:11:58 388
原创 Object 类研究
Object 类研究概述java中Object是所有对象的父类,上帝类。里面的方法我们应该对其深入掌握。Object方法展示代码展示:public class Object { private static native void registerNatives(); static { registerNatives(); } //获得类对应的Class对
2016-04-08 16:37:18 256
转载 接口设计
接口设计概述在手机广泛流行的今天,手机应用也随之越来越多,而且成长的速度也非常快。手机应用软件开发实现方式同普通PC软件一样,也分为BS和CS方式。而采用CS方式,在服务器端大多采用接口的形式提供数据交互(主流数据交互方式有:Json、WebService等),今天要说的就是如何设计接口。接口作为连通客户端与数据库进行数据流通的桥梁,起着举足轻重的作用,直接影响着程序的效率性、稳定性、可靠性以及数据
2016-04-08 15:56:04 1864
转载 XML和JSON瞎掰
XML和JSON瞎掰XML 跟 JSON 的圣战,或许会成为自 vim/emacs 圣战,cli/gui 圣战等等圣战以来的又一个圣战,而所有的圣战大抵都不会有结果,因为每方都有各自的道理,谁都不服谁。在我看来,XML 更适合数据定义,数据存储。它对数据的表达使得这个数据脱离你程序的上下文仍然存在意义并且可以被解读。所以 XML 适合作为配置文件,以及数据存储,存盘文件格式等等。JSON 更适合数据
2016-04-08 11:48:00 282
原创 Lock & Condition 初识
Lock & Condition 初识问题描述synchronized关键字是JVM层提供的同步机制,我们无需对其异常或它行为做处理(比如释放资源),可以说使用synchronized作同步是最简单但是同时也是比较粗粒度的。JDK1.5开始提供了更细粒度的同步控制,即提供了Lock锁机制和Condition对象,为同步做操作。Lock介绍和使用Lock 实现提供了比使用 synchronized 方
2016-04-08 11:20:33 391
原创 生产者消费者模型(多个生产者和多个消费者)JDK1.5 (Lock&Condition)实现版
生产者消费者模型(多个生产者和多个消费者)JDK1.5 (Lock&Condition)实现版场景描述多线程开发中很经典的一个案例就是生产者消费者模型,它们共享资源,但是对资源的操作方式并不同。因此它们需要协调资源,否则就会出现线程安全问题。尤其当时多个生产者和多个消费者时比较麻烦。本文以JDK1.5并发工具包下的Lock和Condition来实现多生产者多消费者模型。代码展示Resource Co
2016-04-08 10:31:42 440
原创 生产者消费者模型(多个生产者和多个消费者)JDK1.5之前实现版
生产者消费者模型(多个生产者和多个消费者)JDK1.5之前实现版场景描述多线程开发中很经典的一个案例就是生产者消费者模型,它们共享资源,但是对资源的操作方式并不同。因此它们需要协调资源,否则就会出现线程安全问题。尤其当时多个生产者和多个消费者时比较麻烦。本文以JDK1.5之前synchronized关键字和等待唤醒机制实现多生产者多消费者模型。代码展示Resource Code/*** 生产者和消
2016-04-08 09:58:36 626
原创 java 之 String
java 之 String概述String是所有程序设计语言中都有的数据结构,也是在开发中使用最多的数据类型。日常开发中处理最多就是关于字符串的处理。String 源码展示String层次结构//final 修饰String类public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequ
2016-04-07 17:45:25 328
原创 Project Lombok插件使用
Project Lombok插件介绍使用概述在java开发中,通常写很多的bean对象我们生成setter和getter方法以及覆盖hashCode()和equals方法,代码比较冗余没有什么技术含量是个体力活,而Project Lombok提供的插件可以让我们直接写几个简单注解就可以实现之前那么多的冗余代码了。简单使用… 待写参考https://projectlombok.org/
2016-04-07 15:24:54 1049
原创 多线程笔记总结
多线程笔记总结1、Java中如果我们自己没有产生线程,那么系统就会给我产生一个线程(主线程,main方法就是在主线程上运行),我们的程序都是由线程来执行的。2、进程:执行中的程序(程序是静态的概念、进程是动态的概念)。3、线程的实现由两种方式,第一种方式是继承Thread类,然后重写方法;第二种是实现Runnable接口,然后实现其run方法。推荐使用第二种方式4、将我们希望线程执行的代码放到
2016-04-07 15:00:18 555
原创 生产者消费者模型(单个生产者和单个消费者)
生产者消费者模型(单个生产者和单个消费者)场景描述多线程开发中很经典的一个案例就是生产者消费者模型,它们共享资源,但是对资源的操作方式并不同。因此它们需要协调资源,否则就会出现线程安全问题。代码展示Resource Code/*** 生产者和消费者共享的资源Resource对象* @author xuyi3* @2016年4月7日 @下午2:01:21* @Resource* @功能说明:
2016-04-07 14:16:59 1442
原创 多线程售票程序
多线程售票程序场景介绍现实生活中,火车站售票厅都是多个窗口同时售票的,同一张票只能被一位乘客所买,当然我们可以去任意一个窗口买票,所以这些票是这些窗口的共享资源,需要对共享的资源进行处理否则就会出现一张票被多个人持有的现象这当然是不允许的。本程序就是模拟多线程售票案例,以同步方式来处理资源共享导致的线程安全问题。通过继承Thread类来实现TicketThread Code/*** @author
2016-04-07 13:32:45 885
原创 java实现多线程初探
java实现多线程初探概述:在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持。在java中使用多线程可以基于两种方式:继承Thread类和实现Runnable接口1、基于Thread实现多线程MyThread Code/*** @author xuyi3* @2016年4月7日 @上午10:46:44* @MyThread* @
2016-04-07 11:24:46 352
原创 线程等待唤醒机制
线程等待唤醒机制1、问题描述有一个Person资源对象,InputDataThread是对其进行赋值操作的线程,OutputDataThread是对其进行取值输出打印操作线程。现在要求,InputDataThread赋值一次,OutputDataThread就打印输出一次,一一对应。java中通过使用wait和notify/notifyAll方法来实现等待唤醒机制。2、代码展示person资源Cod
2016-04-07 10:36:18 385
原创 接口返回值设计
接口返回值设计(对外接口)接口返回值概述接口设计的合理与否是非常重要的,因为对外接口是供前端使用的,一定要和前端沟通好之后达成共同约定,才能放心的设计返回值,否则设计出来前端不认同就作废了。针对返回JSON的设计Result返回对象设计public class Result<T> {// 返回状态码(最好三位数方便扩展,和http状态码类似)private int code;// 返回描述信息(
2016-04-06 17:54:44 4652
原创 Gson使用简单介绍
Gson使用简单介绍1、Gson概述Gson (also known as Google Gson) is an open source Java library to serialize and deserialize Java objects to (and from) JSON.Gson是一款开源的简单的序列化和反序列化java对象的组件,类似组件还有fastjson、jackson,尤其在a
2016-04-06 17:40:13 2207
原创 多线程基础知识概念
多线程基础知识Concept of ThreadThread is basically a lightweight sub-process(子进程), a smallest unit ofprocessing. Multiprocessing and multithreading,both are used to achieve multitasking.But we use multithrea
2016-04-06 14:52:06 695
原创 源码分析之LinkedList
源码分析之LinkedList1、概述LinkedList是基于双向链表实现的一种数据结构,其特点是插入和删除元素非常的方便(常数级算法操作)。2、数据结构双向链表图 3、LinkedList部分源码展示待补充。。。4、注意说明1、LinkedList继承和实现体系(实现了List、Deque ... )2、LinkedList的成员属性Node(注意transient修饰的属性,不被序列化)
2016-04-06 13:41:55 408
原创 源码分析之ArrayList
源码分析之ArrayList1、概述ArrayList是java开发中很常用的一种数据结构,其使用简单效率较高,将其视作动态数组来看待比较合适。ArrayList也是非线程安全的,如果在多线程环境下可借助Collections工具类Collections.synchronizedList(list)方法将其转换为线程安全的对象来操作。或者使用并发包下CopyOnWriteArrayList对象,并发
2016-04-06 11:33:47 382
原创 源码分析之HashMap
源码分析之HashMap1、概述HashMap是java中很常用的一种数据结构,其存储和检索的速度非常的快(基于数组和散列函数实现)。HashMap也是很多面试官比较喜欢问的一种数据结构。HashMap不是线程安全的,如在多线程环境下可以使用Collections辅助类的synchronizedMap()方法将其转为同步的来使用或使用并发包下的ConcurrentHashMap数据结构。2、数据结构
2016-04-06 11:00:17 442
原创 单例设计模式
单例子设计模式1、概述单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。2、饿汉和懒汉单例设计模式2、1饿汉单例模式饿汉单例代码coding/** * <h3>饿汉单例设计模式</h3><br
2016-04-05 22:35:46 357
原创 java集合框架概述
java集合框架概述一、前言 工作一年多了,自己也写了些代码学到了些东西,觉得有必要将所学到的知识记录下来。我觉得学习java不管学习到哪个阶段,JDK的源码都是很值得借鉴和学习的,从JDK源码中我们不仅能学习到最原滋原味的底层实现原理并且还能规范我们的代码风格。在java se jdk源码当中,我觉得最值得好好研究的是集合框架部分和java util并发包下的源码。二、集合整体框架体系
2016-04-05 13:29:41 402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人