- 博客(81)
- 资源 (1)
- 收藏
- 关注
原创 spring-boot java.lang.ClassNotFoundException: org.thymeleaf.spring5.ISpringTemplateEngine
最近在学习spring-boot的时候,按照spring in action的第21章,搭建项目的时候,遇到了这个错误: java.lang.ClassNotFoundException: org.thymeleaf.spring5.ISpringTemplateEngine检查发现,粗心引入了错误的依赖,正确的依赖是(我用的spring 5):compile group: 'or...
2018-03-08 16:24:02 8935 1
原创 spring boot CREATE TABLE CONTACTS ( [*]"; expected "identifier";
最近在看spring boot 就按照spring in action第21章搭建了一个简单的系统 contacts,所有的代码都写好之后,尝试运行了一下,却一直报这个错误:CREATE TABLE CONTACTS ( [*]"; expected "identifier";网上百度了很久也没有解决找到答案,最后发现别人用的h2数据库和我的版本不一样,也就是这个jar包:co...
2018-03-08 16:19:06 1646 3
原创 java 基本类型总结
关于java基本类型的内容,看了无数遍,但是有时候还是会想不起来,还是写写博客加深一下记忆。java的数据类型: – 引用类型 – 基本类型基本类型有4类8中 字符型:char 布尔型:boolean 整数型:byte、short、int、long 浮点型:float、doubleps:我总是把byte类型忘记8中基本类型的字节数byte:1字节 sh...
2018-02-26 17:04:14 176
原创 mysql 修改自增值 auto_increment
项目里负责创建表的同事,每次创建表都不修改自增值,导致每创建一次表,表的自增值起点越来越大,直到有一次,自增值超过int(11)的最大值,sql执行出错,所以就像修改自增值。首先查询自增值:SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name="test";查询出当前的自增值,我这边新建的表值非常大。
2018-01-31 09:41:46 27172 1
原创 多线程基础学习十五:了解condition
之前学习lock相关知识的时候,看到多很多次condition这个接口,当时重心在学习lock接口上,就没有怎么关注这个接口,现在就了解一下这个接口。condition了解之前这个接口之前,我回想了多线程通信的问题,其中有一种就是使用object的wait、notify、notifyall方法,而我之前学习lock相关知识的时候,并没有看到通信相关的内容,所以据此猜测condition
2018-01-04 19:23:16 341
原创 Another app is currently holding the yum lock; waiting for it to exit...
最近在安装gitlab的时候,第一次安装没有看到gitlab是有版本区别(ce和ee),安装成了ee版,在下载期间发现的问题,所以想要重新安装ce版,结果执行官网命令的时候提示这个错误:Another app is currently holding the yum lock; waiting for it to exit...上个安装ee版的yum进程未结束导致的这个问题,所以杀掉进程就行了。首先
2017-12-21 09:51:21 239
原创 学会一种数据结构三:链表
前面学习一种数据结构-队列,在队列的实现中有一种实现叫链表实现,今天就学习一下链表这种数据结构。链表百度百科权威描述:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域
2017-12-20 15:54:44 382
原创 多线程基础学习十四:ReadWriteLock与ReentrantReadWriteLock
前面学习的synchronized、lock与ReentrantLock都是独占锁(有的也称为互斥锁),了解锁的概念的时候,有一种锁叫共享锁,今天就学习一下共享锁向光的接口和实现类。ReadWriteLock的了解在J.U.C(java.util.concurrent)中提供了一种共享锁的实现,也就是读写锁。 ps: 我对读写锁这个词印象颇深,刚开始工作的时候,当时处于对并发完全不知道的状态,面
2017-12-19 11:10:44 206
原创 ERR wrong number of arguments for 'sadd' command
在用spring redis 存储set数据的时候,提示了这个ERR wrong number of arguments for ‘sadd’ command这个错误,通过调试发现:redisTemplate.opsForSet().add(key, arr);上面这句代码执行的时候,arr是一个空数组,所以当执行这句代码,保证数组不是空就行了。
2017-12-18 10:39:31 31781 1
原创 学会一种数据结构二:队列的数组实现和链表实现
上一篇文章了解了队列的概念和一些特性,并用java简单实现一个队列。今天就实现队列两种最常见的实现 数组实现和链表实现。队列的数组实现
2017-12-13 19:52:24 257
原创 java基础复习七:数组的声明与扩容
如何声明数组,有几种方式,面试的时候经常被问道,每次都是临时记一下,也没有认真对待这个问题,现在复习一下。数组的声明最常用的声明方式代码:public static void main(String[] args) { String[] strArr = new String[10]; strArr[10] = "145"; }这是
2017-12-07 10:47:12 261
原创 多线程基础学习十三:ReentrantLock的了解与使用
最近较忙,趁晚上继续之前的学习,前面了解了Lock与AbstractQueuedSynchronizer(AQS),也了解了并发的一些重要的概念,今天就学习一下最常用的一个实现类ReentrantLock。ReentrantLock了解源码:public class ReentrantLock implements Lock, java.io.Serializable {....}
2017-12-06 13:54:50 342
原创 学会一种数据结构一:队列
学习新知识的时候,经常看到源码使用了某种数据结构,如果不了解这种数据结构就很难看懂源码,所以在学习其它知识之余,花点时间学习遇到的数据结构。今天先学习队列。定义来自专家审核的百度百科: 队列: 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行
2017-12-04 22:35:11 269
原创 一种奇怪的错误,执行一个junit测试用例,代码却执行了很多遍
最近用junit做接口测试的时候,项目框架是ssm,只执行了一次测试用例,但是service实现层根据日志,发现执行了几十次到上百次,直到栈溢出才会停止。这是测试用例: @Test public void testGetTest() { try { CloseableHttpClient closeableHttpClient = HttpCli
2017-11-28 10:46:12 2040
原创 多线程基础学习十二:概念了解-重入锁、独占锁与共享锁、公平锁与非公平锁
前面了解了J.U.C中两个重要的类或接口,其它的实现类都是以此为基础的,现在还需要了解一下一些锁的概念,有助于后面学习一些实现类或接口。重入锁在并发中,无论是synchronized还是lock也好,内部都有重入的特性,而且特性的含义是一样的。重入(re-entrant),同一个线程可以获取已持有的锁;已知的有两种出现场景: 1、加锁方法调用另外一个加锁方法; 2、递归调用加锁方法;归根结底,就
2017-11-24 10:50:09 2419
原创 java基础复习六:三大特性之一继承
我工作至今也基本三年,从培训到现在,虽然很多基础知识都知道,但是有一部分知识能说出来,但是解释不了,今天就着重复习一下继承特性。继承java程序员都知道,继承是为了复用代码。面对对象编程基本都有继承。 在java里面: 所有的子类都可以使用父类的属性和方法么? 子类可以继承父类的构造方法么? 说实话,我还真没想过这两个问题,只知道不能用就改修饰词。 所以了解继承的前提先知道不同的修饰词的限
2017-11-24 08:57:41 176
原创 java基础复习五:for(;;)的写法
最近在学习并发的时候,经常看到这种写法: for (;;) { .......; }突然觉得自己不理解在这种写法的意义;测试代码: public static void main (String[] args) { for (;;) { System.out.println(123); }
2017-11-23 15:16:00 690
原创 多线程基础学习十一:AbstractQueuedSynchronizer了解
上一片学习了Lock顶级接口,现在学习一下队列同步器AbstractQueuedSynchronizer,也就是网上常看到AQS。AbstractQueuedSynchronizer目前我看到的Lock的实现最终都是通过AQS同步器来实现同步,所以了解这个类对了解Lock的实现有很大的帮助。这个类提供了很多方法: 根据源码注释,非常容易理解到,这个类提供了和lock类似功能的方法
2017-11-23 15:00:25 187
原创 多线程基础学习十:java.util.lock.concurrent.locks中lock
java.util.lock.concurrent.locks是1.5之后出现的一个多线程包,里面提供了同步的另外一种实现方式,前面学习了Synchronized和volatile的基本用法,现在学习一下这些这些接口和类。java.util.lock.concurrent.locks里面有三个顶级接口: – Lock – Condition – ReadWriteLockLock前面学习的时候
2017-11-21 13:33:00 353
原创 java基础复习四:for与foreach的循环性能比较
基本上每次面试都会被问到这个问题,我的回答基本都是foreach性能比for循环好,可是真的是这样么? 常用的遍历类一般是ArrayList、LinkedList、数组,现在实际测试一下。ArrayList分别测试一千、一万、十万、百万条数据 测试代码:public static void main (String[] args) { List<String> list = ne
2017-11-17 15:18:58 308
原创 多线程基础学习九:练习-多线程获取不重复的随机数字
今天在联系一下前面学习的知识,实现一个简单的需求。需求多个线程并发获取随机数,要求随机数据不能重复。非多线程下的随机数获取实现获取随机数的方式两种: – Math.random() – new Random.nextInt(int)因为一般获取随机数都要求是整数,所以第一种获取方式一般需要乘以10的n次方,所以这次练习采用第二种方式。测试代码:public static void main (S
2017-11-16 19:04:25 1325
原创 java基础复习三:i++与++i以及表达式
虽然知道++i一个是先计算在赋值,i++是先赋值再计算,但是有时候还是会搞不清楚,复习一下。不涉及表达式时测试代码:public static void main (String[] args) { int i = 1; int k = 1; System.out.println(++i); System.out.println(k++)
2017-11-14 17:28:41 511
原创 多线程基础学习八:volatile的使用
有一次去某个公司面试,面试官是两个人,他们问了我一个问题,是否知道【[ˈvɒleɪt] 】关键字,以及它的用法,我当时怎么都想不出来有这个关键字,只好说不知道,没见过这个关键字,面试没通过,临走的时候我让他们拼一下这个关键字,然后他们告诉我是【volatile】,现在想想都觉得是迷之读音啊。volatile轻量级的同步机制,保证了数据的可见性,不保证原子性,网上资料都是这么说,然而我却不怎么理解。v
2017-11-10 17:37:05 274
原创 union all 和where条件一起使用查询数据不对的问题
最近写sql的时候,需要两张表结合一起查询数据,并且根据条件从查询到的数据中只取一条,结果没有取到数据。表一 test1 id name 1 张三 2 李四 3 王五表二 test2 id name 4 小一 5 小二 6 小三查询语句是这样的: select id ,name from test1 union select
2017-11-03 16:33:05 35237 6
原创 多线程基础学习七:使用synchronized实现多线程情况下的访问次数统计
前面学习了多线成基础和synchroniezed的基本用法,现在两者结合起来使用,实现一个简单的计数需求。需求多个线程访问某个类,统计类的访问次数并输出。实现正确的写法第一种实现方式:public class SynchronizedCountNum { public static void main (String[] args) { int i = 0; wh
2017-11-01 17:35:26 1151 3
原创 java基础复习二:HashMap存放数据
以前面试的时候,有人问过我这样一个问题,HashMap存重复的key,能不能存进去,会出现什么问题, 忘记当时怎么回答的了,但是现在想想好像也搞不清楚,所以复习一下。测试我原来以为hashmap存放相同的key的时候,会报错,或者忽略掉这个数据。但是事实胜于雄辩。测试代码:public class MapTest { public static void main (String[] arg
2017-11-01 16:19:00 5724
原创 多线程基础学习六:synchronized的基本使用
前面学习线程的基础知识,在此基础上学习一下关于同步的基础知识,今天就学习synchronized。我开始找工作的时候,面试的时候经常会被人问下面的问题:– synchronized有什么用? – synchronized修饰不同的地方,作用有什么不同?现在就从这两个地方开始学。synchronizedsynchronized是一个同步锁关键字,作用就是让线程只能逐一执行,不能
2017-10-30 19:21:37 235
原创 Error occurred while downloading files from Administration Server for deployment request
最近在weblogic上更新项目的时候,总是报这个错:Error occurred while downloading files from Administration Server for deployment request Underlying error is: “null”网上百度了一下,都说是文件名编码的问题,结果问了提交代码的同事,没有人提交带有中文名的文件。只好把项目删掉重新部署
2017-10-27 15:14:24 9136
原创 java基础复习一:int与Integer
java的一些基础总是忘记,有必要写一遍加深一下记忆。int是java的基础类型,4个字节,在java.lang这个包中。 Integer是int的包装类,可以在一些需要使用int,但又没法用的地方代替int使用。比较大小– **如果两个变量都是int类型的,不存在任何异议 int a = 2; int b = 2; Sy
2017-10-26 16:20:42 261
原创 spring mvc项目,部署tomcat 中,使用jndi数据源
最近部署项目时,有几个项目使用同一个数据源,不想在每个项目中都配置一边,所以就想用jndi数据源的方式,tomcat是8.5,spring是最新版本,配置如下: conf/context.xml全局配置:<Context> <!-- Default set of monitored resources. If one of these changes, the --> <!--
2017-10-26 10:58:12 1825
原创 多线程基础学习五:线程池基础学习
今天学习一下java的线程池的基础知识。 我的工作中基本上没有涉及到并发的问题,开发的都是XXX后台管理系统之类的项目,用户就几十个人,不存需要使用线程池的场景。我看了一下线程池相关的类和接口都在java.util.concurrent包中,其中Callable接口也在这里面。顶级接口Executor通过ThreadPoolExecutor这个类向上查找了解到,ThreadPoolExecutor
2017-10-11 16:03:49 272
原创 vue-router params无法传参的问题
最近需要使用router 的params传参,原来使用的是query传参,因为参数太多,而且query传参可以在地址栏看到,所以想要使用params传参。这是我开始写的代码:this.$router.push({ path:'Test', name:"Test", params:{ name:
2017-10-08 10:48:15 20455 3
原创 spring quartz:Checking for available updated version of Quartz
在项目中使用quartz的时候,启动后总是提示这个信息,而且还花费时间,这样配置一下就可以了:<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list>
2017-09-28 13:27:00 1322
原创 jsp中使用vue,加载页面显示{}的问题
在jsp中vue的时候,页面加载的时候总会有{{ }}闪烁,看着太烦人了。后来百度了一下,发现使用v-cloak可以解决这个问题,使用方式如下:样式中添加:<style>[v-cloak] { display: none;}</style>vue根元素添加: <body> ... 其它元素 ... <div id="app" v-cloak></div> </body>
2017-09-26 17:28:42 5603 7
原创 多线程基础学习三:有返回值的线程类Callable
前两篇学习了Thread和Runnable的基础知识,学习另外一个多线成类Callable。我在项目中遇到过这种场景,页面需要显示机票信息,时间分别为今天、明天,默认显示今天的,但是客户可能会看明天,要求点击明天不能给人明显的等待和迟滞的效果,然而查询机票需要调用第三方接口,接口每次只能查询一个时间的,并且查询时间比较长,大概20秒的样子。为了解决这个问题,要求页面调用接口的时候,要把下一天的的机票
2017-09-25 10:28:09 281
原创 多线程基础学习二:Runnable基础学习
前几天学习了Thread的基础知识,今天开始学习一下Runnable的基础知识。Runnable与Thread的关系Thread实现了Runnable,也就是说Thread是Runnable的一个实现类,并且扩展了很多有用的方法。 源码:publicclass Thread implements Runnable { `````}可以确认的是,如果Runnable能实现一个功能,那Th
2017-09-19 11:15:03 331
原创 多线程基础学习一:Thread基础学习
最近开始学习多线程的基础知识,以学习使用为主。创建一个线程Thread是一个实现了Runnable接口的实现类,所以创建线程只要集成重写run方法就可以了。/** * Created by nyl * 2017/9/15 0015 */public class DaemonTest { public static void main (String[] args)
2017-08-31 18:06:00 236
原创 js代码积累:js对象复制
对象复制在写vue相关代码时,有时把同一个对象或者数组赋值给不同的变量,如果修改其中一个值,另外一个变量的值也会变化,如下:let orderDetailList = this.order.orderDetailList; if (orderDetailList != undefined && typeof(orderDetailList) != undefined && order
2017-08-31 15:13:15 243
原创 http响应总结:常见http响应错误总结
工作中经常会被同事问这个http请求为什么调不通,我虽然能解释清楚错误是什么,但是没有总结过,想到刚开始时,也是看了别人的文章才会的,所以总结一下,贡献一下自己的经验。http 404 响应404响应可以说是,在java web中最常见的错误了,基本上大家都理解问题产生的原因,即找不到这个资源。路径匹配错误导致的404比如说请求的访问路径为http://localhost:
2017-08-28 19:06:34 40841 1
spring-ws 中文文档
2017-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人