java
Patrick Choi
这个作者很懒,什么都没留下…
展开
-
JDK8 Lambda学习记录
“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。/** * 无参数、无返回值,以Runnable为例 */@FunctionalInterf...原创 2018-11-08 09:52:35 · 138 阅读 · 0 评论 -
java基础-面向对象类加载顺序
定义一个类public class Animal { private String attr1 = "我是一个成员变量"; private static String attr2 = "[我是一个静态成员变量]"; { System.out.println("我是一个代码块,在调用构造方法之前执行"); } static { ...原创 2019-08-14 07:22:16 · 157 阅读 · 0 评论 -
java基础-面向对象
什么是面向对象?什么是面向过程?面向对象的三大特性:封装、继承、多态。封装是指:对面向过程的封装,比如说数值比较,在面向对象中它就是一个 封装后的compare() 方法,compare()方法过程的实现就是面向过程。优点:1、对于调用对象者无需知道封装内容的依赖,只与对象依赖,降低耦合度。2、提高代码阅读性、可重复利用性和降低代码复杂性。3、可使用访问修饰符对内容保护不被...原创 2019-08-14 00:51:39 · 132 阅读 · 0 评论 -
java基础-修饰符
访问修饰符访问修饰符有4种:default、public、proected、private。修饰符在类、方法、成员变量中出现。修饰符与被修饰者访问权限 同类 同包 子类 不同包 public √ √ √ √ protected √ √ √ × default √ √ × × ...原创 2019-07-22 15:16:21 · 102 阅读 · 0 评论 -
java基础-循环
循环的基本语法:import java.util.Arrays;import java.util.Iterator;import java.util.List;public class Test { public static void main(String[] args) { // while循环 int i = 0; wh...原创 2019-07-22 12:55:50 · 144 阅读 · 0 评论 -
java基础-逻辑运算符
逻辑与:&,条件都为true则返回true,若发现不为true仍然执行后面条件。逻辑或:|,条件有一个为true则返回true,仍然执行后面条件。逻辑异或:^,两个结果不一致为true逻辑非:!,结果相反短路与:&&,条件都为true则返回true,若发现不为true则不再执行后面条件(短路)。短路或:||,条件有一个为true则返回true,若发现有t...原创 2019-07-22 00:56:32 · 82 阅读 · 0 评论 -
java基础-基本数据类型
基本数据类型有8种分别为:整 形:byte(1bit),short(2bit),int(4bit),long(8bit,在JDK32位的时候长度为4bit)浮点型:float(4bit),double(8bit)字符型:char(2bit)布尔型:boolean (1bit)整数1bit有8位其中第1位用来记录正负数(0代表正数,1代表负数),这样就出现0...原创 2019-07-22 00:23:30 · 77 阅读 · 0 评论 -
java反射机制实战(6) - 总结Declared
1、declared的方法只获取当前类定义的。2、非declared只能获取public修饰的。3、Class、Method、Field如果使用非declared的方法获取都是可以获取父类的public修饰符对应的元素,Constructor只获取当前类。构造方法不能继承。4、Class使用非declared的方法会获取父类注解,其它只会获取当前元素注解。我个人理解如果Field、...原创 2019-06-18 19:08:32 · 439 阅读 · 0 评论 -
java反射机制实战(5) - Annotation
注解在源码里常用,接下来实战如何通过Class获取Annotation/** * 注解一 */@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic @interface MyAnnotation {}/**...原创 2019-06-18 11:20:04 · 126 阅读 · 0 评论 -
java反射机制实战(4) - Field
有了上一节Method的实验,操作Field就易如反掌了。/** * 反射父类对象 */public class AbstractReflectionModel { private String id; public String id2; public AbstractReflectionModel() { } public String ...原创 2019-06-17 11:24:13 · 171 阅读 · 0 评论 -
java反射机制实战(3) - Method
反射获取对象的所有方法,并且打印方法名public class ReflectionTest2 { public static void main(String[] args) throws Exception { ReflectionModel model = new ReflectionModel(); Class<? extends Ref...原创 2019-06-12 10:40:23 · 154 阅读 · 0 评论 -
java反射机制实战(1) - Class
当一个类在java语法下无法调用的情况下,例如其他类访问某一个类私有变量,可以使用反射机制破坏这种规则。接下来就开始实战:package com.pss.model;/** * 被反射的类 */public class ReflectionModel { private String sql; private Integer count; public ...原创 2019-06-10 14:12:54 · 166 阅读 · 0 评论 -
java反射机制实战(2) - Constructors
使用Class生成实例和构造方法生成实例import com.pss.model.ReflectionModel;import java.lang.reflect.Constructor;public class ReflectionTest2 { public static void main(String[] args) throws Exception { ...原创 2019-06-10 14:14:19 · 239 阅读 · 0 评论 -
java基础-Annotation
在使用spring框架的时候,会提供很多注解例如 @Autowired、@Bean等。Spring 通过扫描注解,在标注了过注解的地方会执行特定操作。如实例化Bean,注入Bean。所以注解的用法已经比较清楚,接下来开始实战:先看看别人定义的注解:@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAM...原创 2019-06-19 16:43:18 · 176 阅读 · 0 评论 -
ThreadLocal实践
当多个线程占用一个共享成员变量的时候就会出现线程问题,在之前实践的数据源连接池里,存放数据源是的LinkedList<Connection>,LinkedList是非线程安全的。在多线程场景下会出现线程安全问题,为了改进我使用了ThreadLocal解决这个问题。ThreadLocal是Thread存放变量的一个副本,Thread有个成员变量存放的是ThreadLocalMap,键...原创 2019-06-03 15:49:16 · 220 阅读 · 0 评论 -
实现一个简单的数据库连接池
数据库连接池就是管理数据库连接的地方,因为有很多连接所以叫池。实现数据库连接池基本功能:可以设置池大小,如果连接被使用中就从池内取出,等资源调用close方法将资源返回到池中。其他超时释放资源等功能就不一一实现了。首先实现javax.sql.DataSource接口import javax.sql.DataSource;import java.io.PrintWriter;imp...原创 2019-06-03 14:30:13 · 329 阅读 · 0 评论 -
设计模式六大设计原则
六大设计原则:总原则:开闭原则:对扩展开放,对修改关闭。1、单一职责原则:拆分接口/类实现单一的职责。2、里氏替换原则:继承,实现“开-闭”原则的关键步骤就是抽象化。3、依赖倒置原则:依赖抽象类而不依赖子类。4、接口隔离原则:接口中存在子类用不到切必须实现的方法,就要将接口拆分。5、迪米特法则:一个类对自己依赖的类知道的越少越好,依赖类提供public直接调用。6、合成...原创 2018-11-29 19:20:31 · 200 阅读 · 0 评论 -
java基础-面向对象-多态参数类型扩大访问不允许的原因
创建参数public class A {}public class B extends A {}创建父类,父类的run方法返回的是B子类的参数public class AA { public B run() { return new B(); }}创建子类,这时候会报错public class BB extends AA ...原创 2019-08-14 07:46:47 · 137 阅读 · 1 评论