随笔分类 -  java

摘要:一 java中数组转List package demo; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ListDemo { public static vo 阅读全文
posted @ 2020-08-06 23:40 一首简单的歌 阅读(672) 评论(0) 推荐(0)
摘要:过往记录程序中复杂或者耗时处理时常使用System.currentTimeMillis();,倒也能实现功能,但太繁琐,此处对比传统方式,以及使用StopWatch方式记录程序运行时间。有工具一定要用,能提高开发效率,摆脱繁琐的代码。 一 传统方式的处理 package test; import o 阅读全文
posted @ 2020-07-01 23:48 一首简单的歌 阅读(695) 评论(0) 推荐(0)
摘要:类相当于实例对象的模板,而实例对象相当于用模板对象制作的一个个产品。 而class对象可以描述类的基础信息:属性、方法、接口、注解,并能生成类的实例对象(class对象也可叫做元对象,即描述类信息的对象)。 Class类的存在是实现反射的关键。 举例说明: package classdemo; pu 阅读全文
posted @ 2020-05-07 23:07 一首简单的歌 阅读(2200) 评论(0) 推荐(0)
摘要:java的参数化类型被称为泛型(generics)。平时见到最多的泛型应用是在各个集合中,比如ArrayList、HashMap中。 c++的泛型使用的是膨胀法,就是生成多个实现类。而java使用的是擦除法,就是将对象存入时都擦除为Object类型,但是在取出时再根据相应类型进行一次类型转换。 下面 阅读全文
posted @ 2020-04-07 22:50 一首简单的歌 阅读(318) 评论(0) 推荐(0)
摘要:一、概念 synchronized是java中的一个关键字,表明一段代码需要同步执行。 Lock是一个接口,其有多个实现类,像我们比较常用的ReentrantLock。 二、实现 synchronized是托管给jvm执行的,使用起来比较简洁。 Lock是jdk代码实现的,需要开发者自己管理的细节比 阅读全文
posted @ 2020-03-27 22:43 一首简单的歌 阅读(191) 评论(0) 推荐(0)
摘要:问题: mysql 8小时断开连接问题:mysql的默认设置下,当一个连接的空闲时间超过8小时后,mysql 就会断开该连接,而连接池认为连接依然有效。在这种情况下,如果客户端代码向连接池请求连接的话,连接池就会把已经失效的连接返回给客户端,客户端在使用该失效连接的时候即抛出异常。 解决方案: 可以 阅读全文
posted @ 2020-03-25 22:01 一首简单的歌 阅读(2356) 评论(0) 推荐(0)
摘要:前述的几种java访问数据库的方式: jdbc是最原始的方式,使用比较繁琐; JdbcTemplate方式相对方便性有一些提高,但在工程应用中仍然很不方便。 接下来继续记录使用持久化框架来进行数据库操作,本文记录使用Mybatis进行记录的的简单示例: 1、定义 官网的定义: MyBatis is 阅读全文
posted @ 2020-03-24 22:23 一首简单的歌 阅读(583) 评论(0) 推荐(0)
摘要:为了兼容emoji表情符及一些特殊字符(4字节utf保存的字符,若采用传统的uft8的3字节保存会导致保存报错),需要在项目中设置uft8mb4编码格式。 这里首先看一下mysql官网文档对于使用的mysql驱动的说明:https://dev.mysql.com/doc/connector-j/5. 阅读全文
posted @ 2020-03-23 23:28 一首简单的歌 阅读(6124) 评论(0) 推荐(0)
摘要:前面总结中分别使用了单纯的jdbc以及jdbc配合数据库连接池的方式进行了简单的数据库查询操作,从代码编写的复杂度以及性能两个方面来看使用数据库连接池都好于用单纯的jdbc。另外,在上述两种方式中我们也看到了很多的重复代码,比如获取connection、获取statement,关闭connectio 阅读全文
posted @ 2020-02-01 23:03 一首简单的歌 阅读(1131) 评论(0) 推荐(0)
摘要:上文记录了最基础的JDBC连接数据库的方法,但能看出一个问题,就是要不断的重复去创建connection和关闭connection,如果在对数据库的访问比较频繁的情况下,这种处理方式方式在性能方面是不合适的,下面使用JDBC配合数据库连接池来访问数据库。 除了mysql的驱动,还需引入数据库连接池, 阅读全文
posted @ 2019-11-26 00:03 一首简单的歌 阅读(328) 评论(0) 推荐(0)
摘要:jdbc方式是最基本的访问数据库的方式,仅需要数据库驱动即可,本次连接的是mysql数据库,故仅需要mysql的驱动,pom.xml配置如下: <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <depend 阅读全文
posted @ 2019-10-24 23:11 一首简单的歌 阅读(486) 评论(0) 推荐(0)
摘要:举例说明java注解的使用:设置非空注解,当属性未进行赋值时,给出错误提示。 简单实体类: 注解定义: 使用示例: 运行结果: name不能为空 当放开//person.setName("hello");注释以后的运行结果: hello 后续跟进spring中的注解解析机制。 阅读全文
posted @ 2019-10-17 23:10 一首简单的歌 阅读(848) 评论(0) 推荐(0)
摘要:java反射相对与普通的对象调用原理上来说更加耗时,在调用次数较少的情况下可忽略性能损失,但当调用次数非常多时,需要考虑到此问题,即调用次数过多时不宜使用反射,以下举例: 运行结果: timeNormal=8timeReflection=537 这是在简单使用反射调用某个方法的场景下1000000调 阅读全文
posted @ 2019-10-16 23:40 一首简单的歌 阅读(732) 评论(1) 推荐(0)
摘要:CountDownLatch可以应用于等待多个线程执行完毕后,再执行剩余逻辑,下面举例说明。 场景:程序启动后有三个初始化启动步骤,都是耗时操作,如果单线程顺序执行的话比较耗时,且各步骤的执行无关联,此时考虑多个线程同时进行初始化,但要保证程序业务逻辑的执行要在3个初始化完成之后,应用CountDo 阅读全文
posted @ 2019-10-10 22:59 一首简单的歌 阅读(171) 评论(0) 推荐(0)
摘要:一、使用jdk自带的动态代理机制: 定义一个普通的接口及实现类; 定义一个InvocationHandler的实现类用于织入横向插入的操作(此处为打印信息); 生成接口的代理类; 调用接口方法,实现动态代理。 package aopdemo.jdk; public interface INormal 阅读全文
posted @ 2019-07-03 23:06 一首简单的歌 阅读(377) 评论(0) 推荐(0)
摘要:Future接口代表异步计算的结果,并且提供方法来检测异步过程的进展。Callable接口与Runnable接口比较类似,提供线程的执行体,即run方法的内容。 Future与Callable结合使用开启一个新线程执行,最大的特点是能提供返回值,这样也就能实现类似同步执行的情况,看以下示例,在新线程 阅读全文
posted @ 2019-07-02 22:17 一首简单的歌 阅读(594) 评论(0) 推荐(0)
摘要:metadata:元数据,描述数据的数据,举个例子:在java中使用广泛的注解,就是描述数据的数据的一个具体实现。下面附两个注解的使用示例: package gson; public class ObjectDemo { private String name; @Override public S 阅读全文
posted @ 2018-07-15 21:48 一首简单的歌 阅读(485) 评论(0) 推荐(0)
摘要:一、使用gson解析json数据时,如果出现某一个属性为null的情况(且并无报错信息),首先检查json文件的属性名称和实体类的属性名称是否一致。 举例如下(正常情况,此处读取本地的一个json文件): json文件 解析代码如下 实体类如下 json文件的各属性名称和实体类的名称一致时,解析成功 阅读全文
posted @ 2016-04-15 17:24 一首简单的歌 阅读(808) 评论(0) 推荐(0)