- 博客(37)
- 资源 (2)
- 收藏
- 关注

原创 Java设计模式
在软件工程中,设计模式(design pattern)是对软件设计中普遍存在的问题,所提出的解决方案。设计模式并不是固定的一套代码,而是针对某一特定问题的具体解决思路与方案,是一种最佳实践。设计模式的六大原则1,开闭原则(Open Close Principle)对扩展开放,对修改关闭。在程序需要进行扩展的时候不去修改原有的代码,实现一个热插拔的效果。所以一句话概括:程序扩展性好,易于维护和升级。要
2017-06-12 19:01:47
314

原创 Java 的垃圾回收机制
GC(Garbage Collection),简单来说,当一个对象的引用(references)不再存在时,被这些对象占用的内存会被自动回收。Java的内存管理实际上就是对象的管理,其中包括对象的分配与释放(内存分配和内存回收)。当创建对象时,GC就开始监控这个对象的地址、大小及使用情况。通常GC采用有向图的方式记录和管理堆(heap)中的所有对象,当确定一些对象为“不可达”时,GC就有责任回收这些
2017-05-24 14:59:47
527
原创 MySql 性能优化
参考:http://www.open-open.com/lib/view/open1488782607373.html MySql 性能优化是通过合理安排资源。调整系统参数使MySql 运行更快、更节省资源。可以通过查询速度优化、更新速度优化、MySql 服务器优化以及引用层架构优化等方式来实现。MySql 数据库优化 一方面找出系统瓶颈,提高数据库整体性能;另一方面需要合理的结构设计和参数调整
2017-06-17 18:34:57
2114
1
原创 Java Socket 编程
Socket ,套接字。一个socket 地址是有网络地址和端口号组成的通信标识符。进程间通信操作需要一对socket .进程间通信通过在一个进程中的一个socket 与另一个进程中的另一个socket 进行数据传输完成。当一个消息执行发出后,这个消息在发送端的socket 中处于排队状态,直到下层的网络协议将这些消息发送出去。当消息到达接收端的socket 后,其也会处于排队状态,直到接收端的进程
2017-06-16 20:11:26
432
原创 生产者消费者问题
按照线程的层面,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完才能继续生产数据。如果消费者的处理能力大于生产者,那么消费者必须等待生产者。为了解决这种生产消费能力不均衡的问题,所以便有了生产者和消费者模式生产者消费者模式通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者之间不直接通讯
2017-06-16 19:15:22
747
原创 Java内存模型的简单了解
Java内存模型即Java Memory Model ,简称JMM。JMM定义了Java虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,JMM 隶属于JVM.JMM 决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度看,JMM定义了线程和主内存之间的抽象关系:线程间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(loca
2017-06-15 17:41:38
585
原创 Java 创建线程的方法
public class ThreadTest<V> { @org.junit.Test public void test() throws ExecutionException, InterruptedException { //继承thread 实现 MyThread myThread = new MyThread(); myThrea
2017-06-15 15:47:58
288
原创 HTTP协议
参考:http://www.cnblogs.com/ranyonsue/p/5984001.html http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.htmlHTTP协议是Hyper Text Transfer Protocol (超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到
2017-06-15 14:37:36
289
原创 Map 的遍历
@org.junit.Test public void testMap(){ Map map = new HashedMap(); map.put("name","nzs"); map.put("age","11"); map.put("sex","nv"); //ketset 遍历key
2017-06-13 19:04:49
222
原创 Java 常用排序算法
冒泡排序 基本思想::在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 @org.junit.Test public void bubbleSort(){ int arr[] = {49, 38, 65, 97,
2017-06-13 19:04:19
266
转载 集合处理的一些规范
参考阿里巴巴Java开发手册 1,【强制】关于hashCode 和equals 的处理,遵循如下规则 1)只要重写equals,就必须重写hashCode. 2)因为Set 存储的是不重复的对象,依据hashCode 和equals 进行判断,所以set存储的对象必须重写这两个方法。 3)如果自定义对象作为Map的键,那么必须重写hashCode 和equals. 正例:String 重
2017-06-13 19:03:41
460
转载 SQL事务
参考:http://www.cnblogs.com/boylxz/archive/2010/01/06/1640480.html事务概念事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。因此事务是一个不可分割的工作逻辑单元。在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、保险公司
2017-06-12 19:27:15
290
原创 单例模式
单例模式属于创建型模式。可以保证一个类仅有一个实例,并提供一个访问它的全局访问点。优点: 1)在内存中只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例 2)避免对资源的多重占用饿汉式:class Singleton { //类内部实例化一个实例 private static Singleton instance = new Singleton();
2017-06-12 19:02:50
209
原创 消息队列的初步了解及应用
本文内容参考自: http://blog.youkuaiyun.com/heyutao007/article/details/50131089 http://blog.youkuaiyun.com/shaobingj126/article/details/50585035Java消息服务(Java Message Service ,JMS)应用程序接口是一个Java平台关于面向消息中间件(MOM)的API,用于在
2017-06-09 20:13:54
1032
原创 Spring 简单实现读写分离
读写分离,基本原理是让主数据库处理事务性增、改、删操作,而从数据库处理查询操作。数据库复制被用来把事务性操作导致的变更同步到集群的从数据库。一般常用实现方式有以下两种: 1,主从分离,更新操作主数据库,查询操作从数据库 2,动态数据源切换。下面利用Spring的AbstractRoutingDataSource 类简单实现主从分离。首先DynamicDataSource 继承Abs
2017-06-08 21:05:13
1483
原创 Jedis的简单使用
Redis 是一款开源的,遵守BSD协议的高性能key-value 数据库.有以下特点: 1,支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用 2,不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash 等数据结构的存储 3,支持数据的备份,及master-slave 模式的数据备份优势: 1,性能极高,读速度110000
2017-06-06 18:49:24
309
原创 Simple-Spring-Memcached(SSM) 的简单使用
memcached是一种分布式缓存工具,有效提升了按主键检索数据的性能问题。Simple-Spring-Memcached 是memcached与spring 框架整合的一种缓存框架,本质是采用aop的方式实现缓存的调用和管理。其核心组件声明了一些Advice,当遇到相应的切入点时,会执行这些Advice来对memcached 加以管理。Simple-Spring-Memcached 本身不提供ca
2017-06-06 14:54:30
1348
原创 Java类加载器
Java虚拟机载入Java类的步骤Java文件经过编译器编译后变成字节码文件(.class文件),类加载器(ClassLoader)读取.class文件,并且转换成java.lang.Class 的一个实例,最后通过newInstance方法创建该类的一个对象。ClassLoader的作用就是根据一个类名,找到对应的字节码,根据这些字节码定义出对应的类,该类就是java.lang.Class的一个实
2017-05-31 16:43:53
327
原创 利用webSocket进行服务器推送,并发起桌面通知
需求:定时读取数据,判断后利用websocket 发送消息给特定用户,并利用html5的Notification 发起桌面通知。pom.xml 中添加相关Maven依赖:<!-- websockt--> <dependency> <groupId>org.springframework</groupId> <artifactId>spr
2017-05-15 11:33:56
2744
1
原创 Maven pom.xml 文件解析
pom.xml ,maven的核心配置文件,Project Object Model(项目对象模型),用于描述整个maven项目,也称为Maven 描述文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema
2017-05-04 17:07:36
526
原创 spring 整合shiro ,并实现动态url 配置
shiro 与Spring 结合maven 导入相关包<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-core --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-c
2017-04-19 18:08:11
10116
2
原创 集合-map&&泛型
集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。Collection 接口Collection对象是将多个元素组成一个单元的对象集合用于存储、检索和操纵数据集合框架是用于表示和操纵集合的统一体系结构集合框架的优点提供有用的数据结构和算法,从而减少编程工作提高了程序速度和质量,因为它提
2015-08-16 19:33:04
659
原创 集合
一、 Collection集合是用来管理多个对象的对象,相对于数组来说,在使用前可以不必确定元素的类型,也不必确定元素数量Collection是集合框架中的根接口,声明了集合框架中常用的方法AddContainsRemoveiterate二、 List:元素是有序,可以重复a) ArrayList,基于数组,底层是使用数组来存储元素,当存储的元素数量超过
2015-08-15 16:07:34
345
原创 异常
一、Throwable错误异常所有的异常都是由 Throwable 继承而来, 在下一层分解为 Error 和 Exception 两个分支。 Error 类用于表示程序不试图恢复的不可查严重错误的情况。 应用程序不应该抛出这种类型的对象。如果出现这种错误,我们只能把信息通知给用户然后尽量安全地终止程序。程序一般不处理这类情况。 Exception 类是所有可查和不可查
2015-08-15 15:33:18
382
原创 单例&&工厂模式&&内部类
设计模式:解决某类问题的一个固定的编程模式,思路 23种1.单例模式:只有一个实例//这个类的只给提供一个实例public class SessionFactory { //1.声明一个私有的静态的本类的属性 private static SessionFactory sf; //2.构造 方法私有化 private SessionFactory() { } //3
2015-08-15 15:15:39
569
原创 面向对象基本定义及概念
面向对象的基本特征抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始
2015-08-15 14:30:57
6789
原创 装箱,拆箱&&枚举
包装类什么是包装类:java给每一个基本类型提供了一个包装类,用来包装基本类型的值,提供面向对象的操作方法哪些包装类byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Characterboolean Boolean常用方法:Integer:将int包装成Integer
2015-08-09 20:24:34
384
原创 重写equals/clone
Equals 方法通常是用来判断两个对象是否相等。Set集合通常要依赖这个方法,如果一个类的对象若要存入set集合,通常要重写这个方法一般重写了equals方法,就要重写hashcode方法public class Student implements Cloneable{ private String id;//如果两个对象的id值相同,说明这个两个对象是同一个学生 private
2015-08-09 19:18:34
568
原创 java 排序
冒泡排序(两两比较,交换顺序) //冒泡排序(两两比较,换位) public static int[] bubble(int[] arr){ for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length-i-1; j++) { if(arr[j]<=arr[j+1]){ int temp
2015-08-08 16:25:11
492
原创 Calendar日历类,Date类
Date表示日期:1970年1月1日0点0分0秒0毫秒到现在的毫秒数,他的组成部分:yyyy,MM,dd,hh|HH,mm,ssCalendar:日历,通常用于日期计算获取当前时间并格式化输出@Test public void test(){ Date now = new Date();//表示系统的当前日期 //格式化输出 SimpleDateFormat sdf =
2015-08-08 15:43:26
685
原创 String format and Math类
java字符串格式化输出 @Test public void test() { // TODO Auto-generated method stub //可用printf(); System.out.println(String.format("I am %s", "jj")); //%s字符串 System.out.println(String.format("首字母是
2015-08-08 14:50:26
780
原创 String 相关操作
* String类常用操作: * 拼接(+ concat) * 查找 indexOf lastIndexOf contains * 替换 replace * 比较字符串内容 equals,contentEquals * 判断是否符合正则表达式:matches * 提取部分内容:substring * 格式化输出 format构建字符串对象:@Test
2015-08-08 14:32:10
614
原创 java 面向对象基础1
参数的值传递 在Java语言中,方法只传递参数的值,即不能在调用的方法内来修改参数的值。形参和实参import org.junit.Test; //junit单元测试工具public class TestParam { public void m1(int a){//定义方法时声明的参数变量a是形参 a++;//形参自加 System.out.println(a);
2015-08-01 15:31:49
464
原创 java 基础知识 3
Scanner用scanner实现字符窗口输入Scanner sc=new Scanner(System.in);String day1=sc.next();.next()和nextLine()Next()一定要读取到有效字符后才可以结束输入,对于有效字符之前遇到的空格键。Tab键或enter键等结束符,next()方法会自动将其去
2015-08-01 14:10:19
514
原创 java 基础知识2
Final 和static1. final类不能被继承,没有子类,final类中的方法默认是final的2. final方法不能被子类的方法覆盖,但可以被继承3. final成员变量表示常量,只能被赋值一次,复制后值不再改变4. final不能用于修饰构造方法注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型
2015-08-01 10:02:03
509
原创 java 基础知识1
java对大小写敏感java中的关键字abstract(抽象的) continue(继续) for(当„的时候) new(新建)switch(转换) assert(断言) default(默认) if(如果) package(打包) synchronized(同步) boolean(布尔) do(做)goto(跳转到) private(私有的) th
2015-08-01 09:29:25
524
原创 java入门相关
java是美国sun公司(后被oracle收购)推出的一种计算机编程技术,java是一种编程语言一种开发环境一种应用程序环境一种部署环境 java分为三个版本标准版(java Standard Edition,JavaSE,J2SE)程序适用于个人电脑和工作站运行缩微版(Java Micro Edition,JavaME,J2ME)适用于手机平板等嵌入式设备(and
2015-07-27 19:15:06
498
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人