草庐IT

设计模式---模板方法模式

简述提取算法中不变的部分封装成方法,变化的部分延迟到子类。延迟到子类这个说法在学习设计模式的时候经常出现,实际就是利用多态在子类中重写方法,使得实行时根据实例的类型调用不同的方法。话不多说,看个案例。优化案例最初版v0连接数据库我们有很多种方式,JDBC、JNDI、ODBC等等。下面是不使用设计模式模拟使用三种方式实现连接数据库。publicclassClient{publicstaticvoidmain(String[]args){JDBCjdbc=newJDBC();jdbc.execute();//使用jdbc连接数据库JNDIjndi=newJNDI();jndi.execute();

设计模式---模板方法模式

简述提取算法中不变的部分封装成方法,变化的部分延迟到子类。延迟到子类这个说法在学习设计模式的时候经常出现,实际就是利用多态在子类中重写方法,使得实行时根据实例的类型调用不同的方法。话不多说,看个案例。优化案例最初版v0连接数据库我们有很多种方式,JDBC、JNDI、ODBC等等。下面是不使用设计模式模拟使用三种方式实现连接数据库。publicclassClient{publicstaticvoidmain(String[]args){JDBCjdbc=newJDBC();jdbc.execute();//使用jdbc连接数据库JNDIjndi=newJNDI();jndi.execute();

Java 8 Time API

Java8系列文章持续更新中日期时间API也是Java8重要的更新之一,Java从一开始就缺少一致的日期和时间方法,Java8DateTimeAPI是Java核心API的一个非常好的补充。为什么需要新的日期时间APIJava中现有的与日期和时间相关的类存在一些问题:日期时间类的定义不一致,在java.util和java.sql包中都有Date类。同样,格式化和解析类是在java.text包中定义的。java.util.Date同时包含日期和时间值,而java.sql.Date只包含日期值,把它放在java.sql包中是没有意义的。而且这两个类的名称相同,这本身就是一个非常糟糕的设计。没有为时间

Java 8 Time API

Java8系列文章持续更新中日期时间API也是Java8重要的更新之一,Java从一开始就缺少一致的日期和时间方法,Java8DateTimeAPI是Java核心API的一个非常好的补充。为什么需要新的日期时间APIJava中现有的与日期和时间相关的类存在一些问题:日期时间类的定义不一致,在java.util和java.sql包中都有Date类。同样,格式化和解析类是在java.text包中定义的。java.util.Date同时包含日期和时间值,而java.sql.Date只包含日期值,把它放在java.sql包中是没有意义的。而且这两个类的名称相同,这本身就是一个非常糟糕的设计。没有为时间

Java常用类之String源码分析

一、概述String类的一个最大特性是不可修改性,而导致其不可修改的原因是在String内部定义了一个常量数组,因此每次对字符串的操作实际上都会另外分配分配一个新的常量数组空间。二、创建字符串对象的方式2.1四种方式方式一:直接赋值(常用)//直接赋值方式创建对象是在方法区的常量池Stringstr1="helloword";方式二:通过构造方法产生对象//通过构造方法创建字符串对象是在堆内存Stringstr2=newString("helloword");方式三:通过字符数组产生对象char[]data=newchar[]{'a','b','c'};Stringstr3=newString

Java常用类之String源码分析

一、概述String类的一个最大特性是不可修改性,而导致其不可修改的原因是在String内部定义了一个常量数组,因此每次对字符串的操作实际上都会另外分配分配一个新的常量数组空间。二、创建字符串对象的方式2.1四种方式方式一:直接赋值(常用)//直接赋值方式创建对象是在方法区的常量池Stringstr1="helloword";方式二:通过构造方法产生对象//通过构造方法创建字符串对象是在堆内存Stringstr2=newString("helloword");方式三:通过字符数组产生对象char[]data=newchar[]{'a','b','c'};Stringstr3=newString

binary与进制转换

精华笔记:什么是二进制:逢2进1的计数规则。计算机中的变量/常量都是按照2进制来计算的2进制:规则:逢2进1数字:01基数:2权:1286432168421如何将2进制转换为10进制:正数:将二进制每个1位置的权相加十六进制:逢16进1的计数规则16进制:规则:逢16进1数字:0123456789abcdef基数:16权:4096256161用途:因为2进制书写太麻烦,所以常常用16进制来缩写2进制如何缩写:将2进制从低位开始,每4位2进制缩为1位16进制补码:--------------------------了解计算机处理有符号数(正负数)的一种编码方式以4位2进制为例讲解补码的编码规则:

binary与进制转换

精华笔记:什么是二进制:逢2进1的计数规则。计算机中的变量/常量都是按照2进制来计算的2进制:规则:逢2进1数字:01基数:2权:1286432168421如何将2进制转换为10进制:正数:将二进制每个1位置的权相加十六进制:逢16进1的计数规则16进制:规则:逢16进1数字:0123456789abcdef基数:16权:4096256161用途:因为2进制书写太麻烦,所以常常用16进制来缩写2进制如何缩写:将2进制从低位开始,每4位2进制缩为1位16进制补码:--------------------------了解计算机处理有符号数(正负数)的一种编码方式以4位2进制为例讲解补码的编码规则:

redis-SpringBoot(21)

  Redis是大规模互联网应用常用的内存高速缓存数据库,它的读写速度非常快,据官方Bench-mark的数据,它读的速度能到11万次/秒,写的速度是8.1万次/秒。1.认识SpringCache  在很多应用场景中通常是获取前后相同或更新不频繁的数据,比如访问产品信息数据、网页数据。如果没有使用缓存,则访问每次需要重复请求数据库,这会导致大部分时间都耗费在数据库查询和方法调用上,因为数据库进行I/O操作非常耗费时间,这时就可以利用SpringCache来解决。  SpringCache是Spring提供的一整套缓存解决方案。它本身并不提供缓存实现,而是提供统一的接口和代码规范、配置、注解等,

redis-SpringBoot(21)

  Redis是大规模互联网应用常用的内存高速缓存数据库,它的读写速度非常快,据官方Bench-mark的数据,它读的速度能到11万次/秒,写的速度是8.1万次/秒。1.认识SpringCache  在很多应用场景中通常是获取前后相同或更新不频繁的数据,比如访问产品信息数据、网页数据。如果没有使用缓存,则访问每次需要重复请求数据库,这会导致大部分时间都耗费在数据库查询和方法调用上,因为数据库进行I/O操作非常耗费时间,这时就可以利用SpringCache来解决。  SpringCache是Spring提供的一整套缓存解决方案。它本身并不提供缓存实现,而是提供统一的接口和代码规范、配置、注解等,