自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 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 121 1

原创 java基础-面向对象类加载顺序

定义一个类public class Animal { private String attr1 = "我是一个成员变量"; private static String attr2 = "[我是一个静态成员变量]"; { System.out.println("我是一个代码块,在调用构造方法之前执行"); } static { ...

2019-08-14 07:22:16 149

原创 java基础-面向对象

什么是面向对象?什么是面向过程?面向对象的三大特性:封装、继承、多态。封装是指:对面向过程的封装,比如说数值比较,在面向对象中它就是一个 封装后的compare() 方法,compare()方法过程的实现就是面向过程。优点:1、对于调用对象者无需知道封装内容的依赖,只与对象依赖,降低耦合度。2、提高代码阅读性、可重复利用性和降低代码复杂性。3、可使用访问修饰符对内容保护不被...

2019-08-14 00:51:39 119

原创 java基础-修饰符

访问修饰符访问修饰符有4种:default、public、proected、private。修饰符在类、方法、成员变量中出现。修饰符与被修饰者访问权限 同类 同包 子类 不同包 public √ √ √ √ protected √ √ √ × default √ √ × × ...

2019-07-22 15:16:21 88

原创 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 108

原创 java基础-逻辑运算符

逻辑与:&,条件都为true则返回true,若发现不为true仍然执行后面条件。逻辑或:|,条件有一个为true则返回true,仍然执行后面条件。逻辑异或:^,两个结果不一致为true逻辑非:!,结果相反短路与:&&,条件都为true则返回true,若发现不为true则不再执行后面条件(短路)。短路或:||,条件有一个为true则返回true,若发现有t...

2019-07-22 00:56:32 72

原创 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 68

原创 java基础-Annotation

在使用spring框架的时候,会提供很多注解例如 @Autowired、@Bean等。Spring 通过扫描注解,在标注了过注解的地方会执行特定操作。如实例化Bean,注入Bean。所以注解的用法已经比较清楚,接下来开始实战:先看看别人定义的注解:@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAM...

2019-06-19 16:43:18 145

原创 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 417

原创 java反射机制实战(5) - Annotation

注解在源码里常用,接下来实战如何通过Class获取Annotation/** * 注解一 */@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documentedpublic @interface MyAnnotation {}/**...

2019-06-18 11:20:04 114

原创 java反射机制实战(4) - Field

有了上一节Method的实验,操作Field就易如反掌了。/** * 反射父类对象 */public class AbstractReflectionModel { private String id; public String id2; public AbstractReflectionModel() { } public String ...

2019-06-17 11:24:13 155

原创 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 134

原创 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 222

原创 java反射机制实战(1) - Class

当一个类在java语法下无法调用的情况下,例如其他类访问某一个类私有变量,可以使用反射机制破坏这种规则。接下来就开始实战:package com.pss.model;/** * 被反射的类 */public class ReflectionModel { private String sql; private Integer count; public ...

2019-06-10 14:12:54 152

原创 mybatis框架学习(6) - typeAliases

类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。示例如下:修改resultType测试<select id="selectById" resultType="com.pss.mybatis_spring.model.SysUser"> select * from sys_user where u...

2019-06-04 10:53:04 282

原创 mybatis框架学习(5) - SessionFactoryBean使用mybatis-config.xml

在此之前SessionFactoryBean设置Configuration的时候是使用java的形式。Configuration configuration = new Configuration();configuration.setMapUnderscoreToCamelCase(true);sessionFactory.setConfiguration(configuration...

2019-06-03 18:11:49 1027

原创 mybatis框架学习(4) - 通用Mapper

在写Mybatis的时候,selectAll、selectOne这种常用的每次都要在不同的业务写一次,实在太累了。像这种有规律的应该写成公共的,这时候通用Mapper就有意义了。tk.mybatis就做了这个事情,集成很简单。第一步加入关键的maven依赖<dependency> <groupId>tk.mybatis</groupId>...

2019-06-03 17:06:34 548

原创 ThreadLocal实践

当多个线程占用一个共享成员变量的时候就会出现线程问题,在之前实践的数据源连接池里,存放数据源是的LinkedList<Connection>,LinkedList是非线程安全的。在多线程场景下会出现线程安全问题,为了改进我使用了ThreadLocal解决这个问题。ThreadLocal是Thread存放变量的一个副本,Thread有个成员变量存放的是ThreadLocalMap,键...

2019-06-03 15:49:16 203

原创 实现一个简单的数据库连接池

数据库连接池就是管理数据库连接的地方,因为有很多连接所以叫池。实现数据库连接池基本功能:可以设置池大小,如果连接被使用中就从池内取出,等资源调用close方法将资源返回到池中。其他超时释放资源等功能就不一一实现了。首先实现javax.sql.DataSource接口import javax.sql.DataSource;import java.io.PrintWriter;imp...

2019-06-03 14:30:13 317

原创 mybatis框架学习(3) - 开启事务

事务一个使用 MyBatis-Spring 的其中一个主要原因是它允许 MyBatis 参与到 Spring 的事务管理中。而不是给 MyBatis 创建一个新的专用事务管理器,MyBatis-Spring 借助了 Spring 中的 DataSourceTransactionManager 来实现事务管理。一旦配置好了 Spring 的事务管理器,你就可以在 Spring 中按你平时的方...

2019-06-01 21:09:45 1073

原创 mybatis框架学习(2) - 整合spring

先引入相关依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...

2019-05-28 16:51:35 81

原创 设计模式六大设计原则

六大设计原则:总原则:开闭原则:对扩展开放,对修改关闭。1、单一职责原则:拆分接口/类实现单一的职责。2、里氏替换原则:继承,实现“开-闭”原则的关键步骤就是抽象化。3、依赖倒置原则:依赖抽象类而不依赖子类。4、接口隔离原则:接口中存在子类用不到切必须实现的方法,就要将接口拆分。5、迪米特法则:一个类对自己依赖的类知道的越少越好,依赖类提供public直接调用。6、合成...

2018-11-29 19:20:31 179

原创 UML关系箭头总结

泛化(Generalization):继承的关系,实线带三角形箭头,指向父类。实现(Realization):实现的关系,虚线带三角形箭头,指向接口。关联(Association):拥有的关系,实线带普通箭头,指向被拥有者。依赖(Dependency):使用的关系,即一个类的实线需要另一个类的协助。虚线普通箭头,指向被使用者。聚合(Aggregation):整体与部分的关系。实线带...

2018-11-29 19:19:47 3067

原创 JDK8 Lambda学习记录

“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。/** * 无参数、无返回值,以Runnable为例 */@FunctionalInterf...

2018-11-08 09:52:35 122

原创 mybatis框架学习(1) - helloworld

ORM框架hibernate和mybatis的区别?1)hibernate是全自动ORM框架,而mybatis是半自动ORM框架。在业务复杂的情况下SQL语句会相对复杂,hibernate需要使用hql语句来实现,但是将一大串SQL写在java类中会显得臃肿,mybatis将SQL和java程序解耦解决了这类问题。在业务不复杂的情况下使用hibernate开发效率相对较高。2)hibern...

2018-08-22 00:59:27 112

原创 springboot集成druid数据源

springboot默认使用Hikari数据源,只需要在application.properties配置# rbac databasespring.datasource.rbac.driver-class-name=com.mysql.jdbc.Driverspring.datasource.rbac.url=jdbc:mysql://xxxxxxxxxxxxxxxxxxspring....

2018-08-08 09:35:46 190

原创 springboot配置profiles

在项目中,分生产、测试、开发环境等,所以profile配置是必不可少的。springboot配置profiles只需要两步。1、application.properties加上profiles配置spring.profiles.active=prod2、新增 application-prod.properties这样就可以自由切换配置。...

2018-08-07 22:44:02 310

原创 Springboot集成Swagger接口发布工具

 今天试了一下传说中的Swagger,与springboot整合了一下非常简单。添加maven插件,当然也有可能有springboot的swagger插件,其实也就是包含这两个。&lt;!-- springfox swagger2 --&gt;&lt;dependency&gt; &lt;groupId&gt;io.springfox&lt;/groupId&gt; ...

2018-08-01 22:15:04 300

原创 SQL表连接

常用的表连接有:LEFT JOIN、RIGHT JOIN、CROSS JOIN、INNER JOIN、FULL JOIN表连接相当于N*M行的基础上扩展,即A表N行,B表M行。当有ON 或者 WHERE条件就在N*M行数据中过滤筛选。笛卡尔积了解一下。LEFT JOIN: 左外连接(A表行 * B表行 ON条件过滤) + (A表非交集连接B表空行)RIGHT JOIN:右外连接,(...

2018-07-31 00:43:54 561

原创 hibernate事务场景持久化操作区别

hibernate对象的三种状态:其中 get、save、update、delete、saveOrUpdate操作都是顾名思义的方法。load、persist、merge、saveOrUpdate是hibernate作者新增的几个方法,功能和前面几个相似,但是却又有不同的意义。在有事务的场景下处理持久化操作:一、load 和 get 区别1)load只有在需要用到查询对象时才会发出SQL语句,返回...

2018-05-06 14:17:21 104

原创 Spring Boot 自动配置

在Spring中假设我们要使用一个数据源,必须在配置DataSource才能使用,但是使用了Spring Boot这些就不存在了,相当于Spring Boot为我们做了很多配置的工作。Spring 4提供了一个更通用的基于条件的Bean的创建方式,即使用@Conditional(实现Condition.class)注解。以下Spring Boot自定义的条件化注解,它们定义了Condition的扩...

2018-04-22 22:25:26 143

原创 redis集群搭建

1、到官网下载Redis版本,我下载的是4.0.9当前最新版本,3.0版本以上才支持集群。2、到官网下载Ruby,我下载的是2.3.7版本,必须下载2.2.2版本以上不然使用集群脚本的时候会提示 requires Ruby version &gt;= 2.2.2。如果使用apt-get install rubygems 命令还需要升级ruby,所以我选择使用tar.gz包的方式安装。3、解压Red...

2018-04-17 00:35:51 260

空空如也

空空如也

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

TA关注的人

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