自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ThreadLocal和volatile关键字的区别

最近在学习了ThreadLocal后,了解到它是在线程间做数据隔离的。这个时候我就想起了volatile保证变量的可见,一时间就有点混乱了,想着为什么数据又要隔离又要保证可见性,这是什么个鬼。后面重新梳理了下,我才正在理解两个东西的用法和使用场景。首先ThreadLocal是为了保障数据隔离,避免不同线程对该变量被通过对外提供的方法进行修改,导致了某个线程 set 以后,想要 get ,发现和之前 set的值不一致。导致业务处理异常而volatile第一要务是保证变量的可见性,也就是说,所有线程无论何时

2020-07-26 09:59:28 2613 1

原创 记对ThreadLocal关于数据隔离的理解

用普通变量在多线程环境下的例子public class ThreadLocalTest { public static void main(String[] args) { CyclicBarrier cyclicBarrier = new CyclicBarrier(10,()->{ System.out.println("每个线程的对于值的初始化完成"); }); EasyClass easyClass = new

2020-07-25 16:30:34 198

原创 关于连接springboot ,yml连接数据库时出的errorCode 1045, state 28000 错误

循环报错ERROR 127784 — [reate-700837405] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://localhost:3306/jd?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8, errorCode 1045, state 28000java.sql.SQ

2020-07-17 22:02:16 2054 3

原创 老版本的date类,calendar类如何转换成jdk1.8 time类

老版本中java.util.Date转化为LocalDate //老项目中data类 Date d = new Date(); //jdk8中的Instant类 Instant i = d.toInstant(); //添加时区 ZonedDateTime zonedDateTime = i.atZone(ZoneId.systemDefault()); //将ZonedDateTime转化.

2020-06-21 11:01:56 250

原创 mybatis与mysql数据库交互时使用LocalDate类等

最近刚好学到了time类的问题,想着如何和数据库进行交互,在交互时应选择的类是什么。如果是Mybatis3.4.5之前的版本,需要添加一个依赖<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-typehandlers-jsr310</artifactId> <version>1.0.2</version></dependen

2020-06-13 16:26:13 3583

原创 矩形覆盖如何理解解决

题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?比如n=3时,2*3的矩形块有3种覆盖方法:这个问题一开始看不知道从何下手,一点点尝试,掌握规律就可以了我们先取第一个位置竖放。那么剩下位置就可以看作n-1时的取值;当第一个位置横放时,那么我们需要从剩下的n-1个中再取一个1个横幅,那么剩下的n-2个就按n-2时的取值。这两种情况相加就是第n个的位置的画法。相当于每次计算n个时,只需要知道n-1个的值和n-2个

2020-06-12 17:51:02 184

原创 MySql数据库插入一条数据时,实现设置当前时间

类型中选择timestamp,然后将根据当前时间戳更新。这样插入一条新的数据,他会自动更新时间,不需要我们自己去设置。如果我们要按某种格式取出则需要用smyql函数了

2020-06-09 11:23:34 811

原创 https中的connection字段为close情况

有的网站会在服务器运行一段时间后down掉,有很多原因可能造成这种现象:比如tomcat堆和非堆内存设置不足,程序没能释放内存空间造成内存溢出,或者某些进程一直运行没能释放,造成cup资源大量消耗。 但除了程序本身的原因,还有可能是客服端访问造成(当然这个客户端也包含如蜘蛛软件等搜索引擎),如果服务器和客户端建立的是长链接(可以用"netstat -a"命令查看网络访问信息),这就需要对http响应头的connection做一定的设置。 介绍如下:解释一下:在http1.1中reques

2020-06-03 17:01:11 5378

原创 超级跳台阶的动态规划实现

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。实现方式有很多,可以根据推论用位运算、递归、或者直接用pow方法我这里只要是考虑用动态规划的思路去解决,空间效率不是最好,只是说最近在了解动态规划,所以一题多解嘛public class Solution { public int JumpFloorII(int target) { if(target==0){ return 0;

2020-06-01 09:13:41 183

原创 通过反射的方式获取类对象的属性

public class searchProperty { /*getField和getDeclaredField的区别 这两个方法都是用于获取字段 getField 只能获取public的,包括从父类继承来的字段。 getDeclaredField 可以获取本类所有的字段,包括private的,但是不能获取继承来的字段。 (注: 这里只能获取到private的字段,但并不能访问该private字段的值,除非加上setAccessibl

2020-05-25 21:31:58 356

原创 java反射调用类对象的方法

通过反射机制调用类对象中的方法public static void main(String[] args) { Hero h = new Hero(); try { Method method = h.getClass().getMethod("setName", String.class); //这个是获取方法名,及其传入的参数类型。 System.out.println(method); met

2020-05-24 12:47:29 675

原创 刚学习Mybatis和Springboot源码的一些感受

这段时间查看并学习了一些Mybatis和SpingBoot的源码,我自己感受挺多的,如何使用SpringBoot来做一个项目或者多个项目,它们的调用过程都是类似的,都是比较固定的流程,真正难得是对于springboot的底层一些原理实现的分析。只有了解了其底层实现的过程才能比较好的去使用SpringBoot这样一个一站式的框架。我刚开始学习springboot的时候感觉就是会用就可以,底不底层都无所谓,用的好就可以,好的轮子就是用来提高效率的嘛。但是我反思了下,如果只是会用轮子,而不了解轮子怎么运作,那么和

2020-05-24 12:31:51 489

原创 spring中创建bean的三种方式

之前学习了bean创建的三种方式1:通过默认无参构造方法创建<bean id="person" class="com.dgut.Person"></bean>2:使用静态工厂的方法创建对象public class StaticFactory { 工厂的静态方法创建 public static Person createPerson(){ ...

2020-05-07 00:23:02 1854 2

原创 Error:java: 不兼容的类型: java.lang.String无法转换为java.util.function.Supplierjava.lang.String

调用logger记录器的方法时候,报错提示logger.info()有问题,要求的参数是String,但明明写了字符串却报错。编译运行提示"不兼容的类型: java.lang.String无法转换为java.util.function.Supplier<java.lang.String>",最后发现是IDEA自动导入的包有问题:...

2020-05-04 16:16:04 12583

转载 b+树是什么

在学习b+树的时候,看到了一个博主写的特别好很推荐学习的人看:https://blog.csdn.net/qq_26222859/article/details/80631121

2020-04-30 09:24:24 132

原创 如何理解next数组和获取

# 简介KMP 算法是 D.E.Knuth、J,H,Morris 和 V.R.Pratt 三位神人共同提出的,称之为 Knuth-Morria-Pratt 算法,简称 KMP 算法。该算法相对于 Brute-Force(暴力)算法有比较大的改进,主要是消除了主串指针的回溯,从而使算法效率有了某种程度的提高。提取加速匹配的信息  上面说道 KMP 算法主要是通过消除主串指针的回溯来提高匹配的效...

2020-04-16 10:26:58 1620

原创 EOFException异常的处理

在流传输过程中是不允许被并发访问的。所以数据能接连不断的传过来,其实有很多人在运行的时候都会碰到EOFException, 然后百思不得其解,去各种论坛问解决方案。其实我想说,这个异常不是必须声明的,也就是说它虽然是异常,但其实是正常运行结束的标志。EOF表示读到了文件尾( String str = dis.readUTF(); ,客户端已经断开,后面已经没有内容可以读了),发送结束自然连接也就断...

2020-04-14 16:56:39 2781

原创 队列queue及双端对列Deque

队列(queue)简述队列(queue)是一种常用的数据结构,可以将队列看做是一种特殊的线性表,该结构遵循的先进先出原则。Java中,LinkedList实现了Queue接口,因为LinkedList进行插入、删除操作效率较高。在处理元素前用于保存元素的 collection。除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(...

2020-03-28 10:04:05 525

原创 filewriter追加写入

只需要在创建filewriter时,第二个参数位置写入true就好了FileWriter fw = new FileWriter(file,true)

2020-03-22 23:05:28 1273

原创 输入流是read,输出流是write的原因

流的概念一直让人比较混淆。输入输出流是相对于内存而言的,程序运行在内存当中,文件保存在磁盘里面,如果读一个文件,从磁盘到内存当中,属于输入流。如果从程序中输出到文件中,便是内存写入到磁盘,是输出流。...

2020-03-21 11:38:44 1175 1

原创 java中异常的处理及自定义和简单的介绍

了解java异常就要知道什么是异常异常是导致程序的正常流程被中断的事件比如要打开C盘的test.txt文件,这个文件是有可能不存在的Java中通过 new FileInputStream(f) 试图打开某文件,就有可能抛出文件不存在异常FileNotFoundException如果不处理该异常,就会有编译错误import java.io.File;import java.io.File...

2020-03-19 16:43:00 275

原创 Mybatis中的insert获取自增主键的值

在xml配置中的insert标签假如三段代码就可以了既:useGeneratedKeys=“true” keyProperty=“id” keyColumn=“id”后面两个的id取决于你自己数据库的主键是什么,我的主键的属性名是id例子:<insert id="saveUser" useGeneratedKeys="true" keyProperty="id" keyColumn=...

2020-03-17 21:13:59 152

原创 将英文句子的首字母转化为大写

主要是用到了String类的几个方法:toString,substring,charAt,split还有Character的toUpperCase思路:将字符串通过空格“ ”分成字符串数组,然后遍历,获取取每个字符串的首字母,将首字母转化为大写,然后截取去首字母的字符串,将大写的首字母和去首字符串合并赋值给当前字符串数组例子public String fisrtUpper(String s...

2020-03-14 11:51:42 1099

原创 replace和replaceAll的区别

replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\d",“*”)把一个字符串所有的数字字符都换成星号;相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字...

2020-03-13 18:23:25 397

原创 创建一个长度是5的随机字符串,随机字符有可能是数字,大写字母或者小写字母

方法一Random random=new Random(); int str_num; char c; char [] array=new char[5]; for(int i=0;i<array.length;i++) { //生成随机数,48到122 ASCII码 str_num=random...

2020-03-13 11:22:19 1295

原创 字符串转化为字符数组

字符串转化为字符数组//把字符串转换为字符数组 //转换为字符数组后,筛选出控制台读取到的字符串中的大写字母和数字 Scanner sc=new Scanner(System.in); String str=sc.nextLine(); char[] cs=str.toCharArray(); for(char ea...

2020-03-13 10:53:45 1713

原创 一个简单的mybatis连接数据库的例子

idea目录情况1:编写一个接口IUserDaopackage com.dgut.dao;import com.dgut.domain.User;import java.util.List;public interface IUserDao { public List<User> findAllUser();}2:编写一个与数据的映像类package ...

2020-03-11 17:36:30 181

转载 unrecognized or represents more than one time zone

Cause: java.sql.SQLException: The server time zone value ‘�й���׼ʱ��’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone ...

2020-03-11 00:05:18 247

原创 匿名类中必须使用final修饰的外部的局部变量的原因

public static void main(String[] args) { //在匿名类中使用外部的局部变量,外部的局部变量必须修饰为final final int damage = 5; Hero h = new Hero(){ public void attack() { ...

2020-03-08 18:22:31 183 1

原创 接口中定义变量

接口中定义变量必须为public static final的原因一个很好的解释,言简意赅https://blog.csdn.net/xingfeng0501/article/details/6875685

2020-03-08 17:56:27 783

原创 用sort方法对二维数组进行排序

用sort方法对二维数组进行排序我解决二维数组用sort方法排序的途径是将二维数组转化为一个一维数组,再用Arrays.sort(array)排序一维数组,然后将一维数组重新赋值给二维数组import java.util.Arrays;public class arrays { public static void main(String[] args) { int[][...

2020-03-06 12:00:03 7849

原创 遍历二维数组

二维数组的遍历//二维数组的初始化和如何用foreach输出,需要注意的是,tDarray.length是二维数组的个数,tDarray.length[i]是第i-1的数组的长度 public static void main(String[] args) { int[][] tDarray=new int[5][5];//{{2,3,4,5,6},{1,2,3,4,5,...

2020-03-06 11:37:49 268

原创 两种生成随机数的方法

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...

2020-03-06 11:30:38 126

空空如也

空空如也

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

TA关注的人

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