自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学而不思则罔,思而不学则怠

对每天所学的记录

  • 博客(35)
  • 收藏
  • 关注

原创 设计模式之工厂方法模式

工厂方法模式分为三种:普通工厂模式、多个工厂方法模式和静态工厂方法模式普通工厂模式: 普通工厂模式就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。public interface MyInterface { public void print();}public class MyClassOne implements MyInte...

2019-03-18 09:52:23 98

原创 设计模式之单例模式

单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例创建实例过程:1.开辟一个空间2.把内存空间的首地址指向引用3.调用构造器创建实例特点:1.由自己创建实例2.外部不能创建实例3.提供一个公共方法供外部获得单例创建方式:1.饿汉式饿汉式单例在类加载初始化时就创建好一个静态的对象供外部使用,除非系统重启,这个对象不会改变,所以本身...

2019-03-15 17:35:39 98

原创 多线程--基础知识

一、线程的理解       进程是程序的一种动态执行的实现,一个进程的实现需要多个线程的启动,线程与线程之间都是各自独立的。表面看是同时执行的,但其实是CPU会为它们分配时间片,并不是同时进行的。二、创建线程的两种方式(1)继承Threadpublic class MyThread extends Thread{ private String name; public M...

2018-07-24 15:11:24 129

原创 分布式、集群、负载均衡

    一、分布式    分布式就是把单个任务拆分成多个子业务放在不同的机器上,相互协调完成任务,提高了并发性。如:单个任务在一台机器上完成需要10个小时。把它拆分成10个子任务放在10台机器上,1个小时就完成任务了。但是有一个问题,如果某个节点发生问题,整个业务就不能正常执行了。二、集群    集群就是把同一任务放到不同的服务器上,提高了可用性。一台机器垮了,可以切到另一台机器上。如:同样提供1...

2018-07-10 16:29:27 164

原创 JAVA学习之正则表达式

一、简介用途:字符串匹配(字符匹配)、字符串查找、字符串替换类:java.lang.String   java.util.regex.Pattern   java.util.regex.Matcher例1:"abc".matches("...")  //true 是否是3个字符例2:"a1234a".replaceAll("\\d", "-") //a----a \d代表一个数字  在java中\...

2018-05-02 16:52:09 147

原创 JAVA学习之日期处理

获取当前系统时间:Date date = new Date();日期格式化:SimpleDateFormat sdf  = new SimpleDateFormat(yyyy-MM-dd hh:mm:ss);获取其中某个值用Calendar类Calendar c = Calendar.getInstance();//获取实例,默认是当前系统时间c.setTime();//可以任意设置Datec.g...

2018-04-26 14:17:13 85

原创 JAVA学习之反射

一、概念反射:反射就是把java类中的各种成分映射成一个个的Java对象Class对象的由来是将class文件读入内存,并为之创建一个Class对象,同一个类只创建一个Class对象二、程序的运行过程classLoader将class文件load到内存中的code segment中,运行环境找到main方法开始执行,运行过程中会动态的加载其他的class文件三、classLoader的类加载机制(...

2018-04-26 11:18:16 165

原创 JAVA学习之GUI(下篇)

一、内部类写在一个类的内部,方法的外边好处:(1)可以方便的访问包装类的成员(2)可以防止被其他类访问何时使用:该类不需要被其他类访问举例:public class TFMath { public static void main(String[] args) { new TFFrame3().launchFrame(); }}class TFFrame3 extends Frame...

2018-04-25 11:42:39 199

原创 JAVA学习之GUI(上篇)

一、基础GUI:Graphics User Interface  图形用户界面(1)Component:例如按钮,下拉框(2)Component必须放在Container中才能显现出来(3)Container是Component的子类,可以容纳别的Component对象(4)Container可以使用add()添加其他Component对象(5)Container可以容纳Container(6)两...

2018-04-24 15:34:34 1220 3

原创 JAVA之网络编程

一、基础OSI 参考模型                 TCP/IP参考模型        (软件开发常涉及到的)应用层                          应用层  (应用程序)表示层                          传输层  (TCP/UDP层)会话层                          网络层  (IP层)传输层                ...

2018-04-23 15:52:43 125

原创 JAVA之多线程

一、基本概念    线程:一个程序里的不同路径        进程:一个exe文件,一个静态的概念二、创建(1)继承Thread(2)实现Runnable接口都需要重写run()方法,调用start()方法。最好使用第二种三、状态转换    创建-->start-->调度-->运行-->结束    运行过程中可能会出现阻塞,之后会重新接受CPU的调度四、常用方法sleep:...

2018-04-19 16:25:41 213

原创 JAVA之IO

一、流的输入输出原理    流是用来读写文件的,可以把文件看成一个水桶,程序想要获得数据,弄一个管道,让文件的数据流出来    若想写入数据,弄一个管道,让数据流入文件(对于程序来说)    所以输入流是读数据,输出流是写数据二、输入流\输出流的分类    按数据流的方向不同分为输入流和输出流    按处理数据单位不同分为字节流和字符流    按功能不同分为节点流和处理流所有流类型都位于java....

2018-04-18 11:43:30 108

原创 JAVA之容器

一、图结构二、    对于HashSet和HashMap自定义对象需要重写equals和Hashcode方法    对于List自定义对象需要实现Comparable接口,重写compareTo方法    对于List,Collections有几个方法:    sort:顺序    reverse:倒序    shuffle:随机    binarySearch:折半查找...

2018-04-17 10:13:08 106

原创 Java常用类之枚举类型

枚举类型(1)只能够取特定值中的一个(2)使用enum关键字(3)是java.lang.Enum类型public class EnumDemo { //定义了一个Color类型,里面可以取3个任意的值 public enum Color {red,green,blue}; public static void main(String[] args) { Color color = Col...

2018-03-30 15:10:07 151

原创 Java常用类包装类之自动装箱自动拆箱

1.自动装箱:基本数据类型---》对象(包装类)Integer i1 = 2;//自动装箱本质上JVM调用了:Integer li = Integer.valueOf(2);2.自动拆箱:  包装类---》基本数据类型System.out.println(i1+2);//3本质:i1.intValue()+2PS:所谓自动,就是说这个过程并不需要程序员去完成,而是jvm自动完成的,jvm会在编译期...

2018-03-30 09:36:45 160

原创 Java常用类之String、StringBuilder、StringBuffer

一、StringString的三种创建方式// String str1 = "123";// String str2 = "123";// System.out.println(str1==str2);//true// // String str1 = new String("123");// String str2 = new String("123");// Syst...

2018-03-30 09:31:44 190

原创 工作周结之正则表达式

先不讲正则表达式是怎么拼的,先讲怎么用。我之前没用过,所以正则可以百度,有各种规则是写好的,重点是怎么用第一种用法:// 要验证的字符串 String str = "[email protected]"; // 邮箱验证规则 String regEx = "[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-...

2018-03-27 15:32:21 148

原创 工作周结之读写文件

一、读取文件有两种方式,一是从缓冲流里读,一种是Scanner读取。前者是读取普通文件,先获取全部内容到缓冲流里,然后依次读取。后者适合读取大文件,读一行,取一行。推荐后者/** * 通过缓冲流读取文件 * @param path */ public static void normal(String path){ File file = new File(path); i...

2018-03-25 16:39:54 175

原创 工作周结设计模式之单例模式

单例模式意思就是只能创建一个对象。这样做的好处是确保所有的引用访问的都是同一个内存空间并且节约了系统资源。但是在多线程中要小心使用。若一个用户获得该对象并对成员变量进行操作,下一个用户进来操作同一快内存,若有所操作,上一个用户还没操作完,容易发生错误。可以对该变量加互斥锁,但是这样效率会很低。推荐使用threadLocal饿汉式:很着急初始化,类加载时就创建对象。public class Test...

2018-03-25 15:43:23 146

原创 工作周结设计模式之模板模式

模板模式一般做一件事都会有步骤,先后顺序。模板模式是抽象父类定义了一些抽象方法,这些是子类需要实现重写的,每个子类做这个步骤都是不同的。还可以有公共的方法,就是大家都要做的,做的都是相同的。例如上学,一般步骤是起床、吃饭、坐车。每个人起床方式不同,可能是闹钟叫醒的,可能是老妈叫醒的。吃的早餐也会各式各样,但大家都是坐班车,这个一样的。抽象父类:public abstract class Schoo...

2018-03-25 15:08:36 162

原创 工作周结设计模式之策略模式

策略模式    写代码时总会出很多的if…else,或者case。如果在一个条件语句中又包含了多个条件语句就会使得代码变得臃肿,维护的成本也会加大,而策略模式就能较好的解决这个问题。需求:判断如果身高,年龄,体重    接口:public interface Judge { public Boolean judge(Person p);}   实现类:public class HeightJu...

2018-03-25 14:49:34 161

原创 java之异常

1.异常:在程序运行期间发生的错误2.Java运行期间如果有异常,会生成异常对象,该对象包含异常信息,提交给运行系统,这个过程叫抛出异常。3.如果运行系统接收到异常对象会交给能处理的代码,叫捕获4.异常的分类 Throwable Error              Exception                  捕获       RuntimeException  Error...

2018-03-18 22:18:14 133

原创 Java之面向对象

1.引用    C c1 = new C();    c1 是一个局部变量 存储在stack    new C();存储在heap  c1指向该对象  java中的对象是通过引用对其操作的    C是一个类,是静态的概念,存储在代码区 例如:Class C{    int i;    int j;    main(){ C c1 = new C(); C c2 = new C();    }}st...

2018-03-18 09:41:12 104

原创 Java之基本语法

1.标识符命名规则    1)字母、数字、下划线、$    2)不能以数字开头    3)区分大小写    4)不能和关键字重名    驼峰式:userName    帕斯卡:UserName    下划线:user_name    匈牙利  SimpleDateFormat  sdf  注意:最好见名知意2.变量的本质    变量其实是内存中的一小块区域,通过变量名来访问这块区域,因此每个变量使...

2018-03-18 09:35:42 112

原创 JAVA简介

一、JAVA简介    1.核心机制之虚拟机        (1)JVM可以理解成一个以字节码为机器指令的cpu        (2)对于不同的运行平台,有不同的虚拟机        (3)实现了一次编译,随处运行     .java文件(源码)--》编译(javac)--》.class文件(字节码,二进制,计算机可以理解)--》执行-->JVM for UNIX   JVM for Win...

2018-03-18 09:31:21 974

原创 十-Mina学习之自定义协议介绍

1.自定义的编解码工厂    要实现编解码工厂就要实现ProtocolCodecFactory这个接口2.自定义的编解码器    1.实现自定义的解码器:实现ProtocolDecoder接口    2.实现自定义的编码器:实现ProtocolEncoder接口步骤:先获得工厂,再获得编解码器。 3.为什么要使用自定义的编解码器    在实际工作中不是一个字符串就可以传输所有数据,我们传输的是自定...

2018-03-14 09:52:09 403

原创 九-Mina学习之IOBuffer接口

1.IOBuffer    基于javaNio的ByteBuffer做了封装,用户操作缓冲区的数据,包括基本数据类型,字节数组和对象,其本质就是一个可扩展动态的Byte数组。2.IOBuffer的索引属性    Capacity:代表当前缓冲区的大小    Position:理解成当前读写位置,也可以理解成下一个可读数据单位的位置。Position<=Capacity的时候可以完成数据的读写...

2018-03-08 11:44:55 1346 2

原创 八-Mina学习之IOProcessor接口

1.IOProcessor    是以NIO为基础实现的,以多线程的方式来完成我们的读写操作。    作用:是为Filter读写原始数据的多线程环境。如果Mina不去实现,我们自己来实现NIO的话,需要我们自己写一个非阻塞的读写环境。2.配置Processor的多线程环境    1)通过NioSocketAcceptor(int processorcount)构造函数可以指定线程的个数    2)...

2018-03-08 11:17:13 556

原创 七-Mina学习之IOSession接口

1.IOSession    主要是网络通信双方建立连接之间的描述。    作用:可以完成对于连接的一些管理,可以发送或者读取数据,并且可以设置会话的上下文信息。2.SessionConfig    提供我们对连接的配置信息的描述。可以设置读写缓冲区,读和写的空闲时间,设置读写超时信息。3.API    IOSesson:        write(Object message);发送数据    ...

2018-03-07 18:05:50 3815

原创 六-Mina学习之IOFilter接口

1.IOFilter    对应用程序和网络的传输,就是二进制数据和对象之间的转换,有相应的解码和编码器。这也是过滤器的一种,还可以做日志、消息确认等功能。2.IOFilter类图    是在应用层和业务层之间的过滤层3.完成自定义的过滤器    就是在往Handler处理之前,需要调用相应的过滤器进行过滤。    Client:业务Handler之前会调用过滤器。    server:同样在接收...

2018-03-07 17:34:27 308

原创 五-Mina学习之IOService接口

1.IOService    实现了对网络通信的客户端和服务端之间的抽象,用于描述客户端的子接口IOConnector和服务端的子接口IOAcceptor2.IOService的作用    可以管理我们网络通信的客户端和服务端,并且可以管理双方连接的会话session,同样可以添加过滤器。3.类结构    可以通过扩展子接口和抽象的子类以达到扩展的目的。                      ...

2018-03-07 15:50:47 197

原创 四-Mina学习之长短连接

1.长连接    通信双方长期的保持一个连接状态不断开。例如qq,当我们登录qq的时候,连接腾讯服务器,一旦建立连接,就不断开。除非发生异常。对于长连接比较耗费资源。2.短连接    通信双方不是保持一个长期的连接状态。例如http协议。客户端发起http请求,服务端处理http请求。当服务器处理完请求返回给客户端数据后就断开连接。对于下次的连接请求需要重新发起。这种方式使我们现在常使用的方式。3...

2018-03-07 15:16:12 332

原创 三-Mina整体体系结构分析

1.Mina在应用程序中的作用    主要屏蔽了一些网络通信的细节,封装了socket,并且是NIO的一个实现架构,可以帮助我们快速开发网络通信。常常用于游戏开发、中间件等服务端程序。2.一些接口和实现类    IOService:用于描述客户端和服务端,其子类是connector和acceptor,分别用于描述客户端和服务端。    IOProcessor:多线程环境,来处理我们的连接请求流程。...

2018-03-07 14:56:56 196

原创 二-通过Mina写一个简单的入门级别客户端程序

上篇文章中是用telnet来访问服务端的,这篇文章会通过Mina来写一个客户端的程序。闲话少说,先附上代码:public class MinaClient { private static IoSession session = null; private static String host = "127.0.0.1";//ip地址 private static int port = 70...

2018-03-06 16:34:08 208

原创 一-通过Mina写一个简单的入门级服务端程序

1.Mina概述    Mina是apache 开发的开源的网络通信框架,基于javaNIO来实现。2.需要的jar包    commons-logging-1.1.1.jar    log4j-1.2.17.jar        mina-core-2.0.7.jar    slf4j-api-1.7.2.jar3.编码解码    应用程序:是java对象或者是基本数据类型,传到网络需要解码成二...

2018-03-06 15:26:32 656

空空如也

空空如也

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

TA关注的人

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