Java
小船长的炒菜猫
不积跬步无以致千里,不积小流无以成江海
展开
-
Guava的ListenableFuture解析
转自:google Guava包的ListenableFuture解析并发编程是一个难题,但是一个强大而简单的抽象可以显著的简化并发的编写。出于这样的考虑,Guava 定义了 ListenableFuture接口并继承了JDK concurrent包下的Future 接口。我们强烈地建议你在代码中多使用ListenableFuture来代替JDK的 Future, 因为:大多数Fut...转载 2018-03-08 15:12:48 · 1157 阅读 · 2 评论 -
JsonMappingException: Problem deserializing 'setterless' property '': get method returned null
更改了一下实体类,往实体中添加一个字段之后,接口调用出错了,控制台打印的错误信息,而且也挺奇怪的,这里只是显示了一个warning而不是error2017-12-27 11:16:34.499 WARN 8640 --- [io-8099-exec-10] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP messa原创 2017-12-27 15:10:22 · 9328 阅读 · 0 评论 -
Java反射机制(转载)
转自:http://www.sczyh30.com/posts/Java/java-reflection-1/一、回顾:什么是反射?反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。Oracle官方对反射的解释是Reflection enables Java code to discover informa转载 2018-01-02 14:48:49 · 254 阅读 · 0 评论 -
第一个Nashorn实例(Java8)
之前学习Java8的时候恰好写了个简单的例子,所以放在这里记录一下。文件目录:StringFunction.java,字符串功能类StringNashorn.java,封装脚本引擎NashornTest.java,测试引擎,引擎调用StringFunction.java源码:public class StringFunction { /** * 字符串截取 *原创 2018-01-02 14:43:32 · 2275 阅读 · 1 评论 -
Java8指南
翻译自国外大神博客,地址:java-8-tutorial,大神的博客里面有很多关于Java8讲解的文章,看了之后受益匪浅,写的非常好。“Java is still not dead—and people are starting to figure that out.”欢迎来到 Java 8指南. 这篇教程会一步步指导你深入Java8的新特点,在简短的代码示例的支持下,您将学习到如翻译 2018-01-09 16:19:30 · 540 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: org/apache/hive/service/cli/thrift/TCLIService$Iface
今天在使用hive-jdbc连接服务器的hive时,出现了一些问题,在这里记录一下解决的方法,首先肯定要在pom中引入hive-jdbc的依赖包,然后写一段连接hive的程序,目的是获取hive中的表名和schema名称。但是运行却报错了:java.lang.NoClassDefFoundError: org/apache/hive/service/cli/thrift/TCLIService原创 2017-11-24 13:33:04 · 23299 阅读 · 0 评论 -
Maven工程pom中定义jdk版本
今天把之前做的项目导进eclipse,然后发现报错,一些类在1.6中不支持,需要将JDK版本设置为1.7,我直接通过eclipse中的提示进行更改,然后update project一下,发现又回到了SE1.6版本,我想一定是在pom中定义了这个java版本,查看pom文件,发现编译插件定义的1.6版本,代码:maven-compiler-plugin1.61.6原创 2016-10-26 14:42:26 · 28642 阅读 · 1 评论 -
Maven package错误:You have to use a classifier to attach supplemental artifacts to the project instead
我在pom.xml文件中添加了一个maven-jar-plugin的插件,目的是想多打一个jar包,如下: org.apache.maven.plugins maven-jar-plugin 3.0.2 service-jar package jar ${project原创 2017-11-17 10:22:27 · 20349 阅读 · 0 评论 -
Java反射:通过父类对象调用子类方法
通常情况下在父类中不能直接调用子类中的方法(重写的除外),但是在某些特殊的情况下,需要根据一个父类的对象来调用子类的方法,原理就使用java的反射原理。例如:Person类,有一个name属性public class Person { private String name; public String getName() { return name;原创 2017-11-15 15:41:54 · 20038 阅读 · 8 评论 -
深度探秘String类
转自:深度探秘String类1 不可变类与可变类的区别?不可变类:这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:Interger、Long和String等。可变类:相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类。2 怎么设计一个不可变类?类添加final修饰符,保证类不被继承。保证所有成员变量必须转载 2018-01-31 10:37:01 · 248 阅读 · 0 评论 -
Java String常量池
转自:这就是String常量池啊? 题目:请结合常量池/String.intern()/StringTable来谈一下你对Java中String的理解? 考点:对于这个题目,我们可以结合代码来跟面试官进行慢慢交谈,并且根据平时利用JVisualVM和javap两个工具来对字符串内部变化分析,说说它的底层实现。1.字符串的创建方式?引号创建的字符串在字符串池中。 new创建字符串时转载 2018-01-31 11:14:18 · 405 阅读 · 0 评论 -
org.bouncycastle.asn1.ASN1Boolean非法循环依赖的错误
记录遇到一次奇怪的错误,在发布war包到Tomcat的时候,出现了org.bouncycastle.asn1.ASN1Boolean非法循环依赖的错误。INFO: Deploying web application directory /data/w/www/xxx-app/webapps/ROOTApr 02, 2019 9:59:52 PM org.apache.catalina.co...原创 2019-04-24 22:59:35 · 6960 阅读 · 3 评论 -
IDEA中Java错误:Usage of API documented as @since 1.8+ less...
IDEA出现错误Usage of API documented as @since 1.8+ less… (⌘F1) This inspection finds all usages of methods that have @since tag in their document….我以为是JDK版本的问题,但是在External Libraries中也能显示出JDK8的系统jar包。解...原创 2018-03-05 20:34:42 · 9719 阅读 · 2 评论 -
(译)Create Java String Using ” ” or Constructor?
在Java中字符串可以有两种方式构造:String x = "abc";String y = new String("abc");那这两种方式之间有什么区别呢?1.双引号和构造方法这个问题可以用两个简单的例子来解答。例1:String a = "abcd";String b = "abcd";System.out.println(a == b); // True翻译 2018-01-30 12:35:29 · 362 阅读 · 0 评论 -
Set vs. Set<?>
翻译自: Set vs. Set你可能知道一个无界的通配符Set 可以容纳任何类型的元素,而一个原始类型Set也可以容纳任何类型的元素。 但是他们有什么区别呢?1.Set的两个事实(1)由于问号? 代表任何类型,所以 Set 能够容纳任何类型的元素;(2)因为我们不知道?的类型,所以我们不能把任何元素放入Set 中所以一个Set 可以容纳任何类型的元素(Item 1),但是我们翻译 2018-01-29 09:40:15 · 288 阅读 · 0 评论 -
Java多线程:join使用及原理
转载自:https://mp.weixin.qq.com/s/at8NynjnYvqkFw61kn3Apgjoin()是线程类Thread的方法,官方的说明是:Waits for this thread to die.等待这个线程结束,也就是说当前线程等待这个线程结束后再继续执行,下面来看这个示例就明白了。示例: public static void main(String[]转载 2018-01-19 22:58:07 · 794 阅读 · 0 评论 -
Java开发人员爱犯的10个错
翻译自:Top 10 Mistakes Java Developers Make因为自己在开发过程中也有犯过其中的一些错误,觉得写的很好,所以翻译在此。1.将数组转换为ArrayList为了将一个数组对象转换为ArrayList对象,程序员经常是这样实现:ListString> list = Arrays.asList(arr);Arrays.asList()方法返回一个A翻译 2018-01-26 16:35:39 · 260 阅读 · 0 评论 -
Spring Boot实现文件上传
Spring Boot官方文档中写到:Spring Boot包含Servlet 3中的javax.servlet.http.Part API来支持上传文件。当想要接收多部分编码的文件数据时,可以使用MultipartFile类型的参数方法,并添加@RequestParam注释。(参考Spring Boot官方文档)文件上传前台表单:Hello World! 文件:原创 2016-11-18 09:50:28 · 516 阅读 · 0 评论 -
JDBC连接Hive
1 启动Hive启动Hive命令:bin/hivebin/hiveserver2注意:这里是两个服务同时启动 hiveserver2是启动服务,为jdbc的访问提供服务。 java连接代码: public static void main(String args[]) { Connection connection = null; Statement st原创 2017-04-11 15:37:51 · 1908 阅读 · 0 评论 -
Spring Boot:The field file exceeds its maximum permitted size of 1048576 bytes.
Spring Boot做文件上传时出现了The field file exceeds its maximum permitted size of 1048576 bytes.错误,显示文件的大小超出了允许的范围。查看了官方文档,原来Spring Boot工程嵌入的tomcat限制了请求的文件大小,这一点在Spring Boot的官方文档中有说明,原文如下65.5 Handling Multip...原创 2017-01-12 21:15:50 · 150136 阅读 · 31 评论 -
java.lang.ArrayStoreException异常
异常提示:java.lang.ArrayStoreException: java.lang.Boolean at java.util.stream.Nodes$FixedNodeBuilder.accept(Nodes.java:1222) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193原创 2017-08-21 14:56:06 · 86255 阅读 · 1 评论 -
Java transient关键字
我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,Java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个的所有属性和方法都会自动序列化。然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,诚然,你可以让这个类来实现Externalizable接口转载 2017-08-11 15:55:28 · 230 阅读 · 0 评论 -
Java克隆(Clone)的应用
转自:http://lavasoft.blog.51cto.com/62575/43480/Java克隆(Clone)是Java语言的特性之一,但在实际中应用比较少见。但有时候用克隆会更方便更有效率。 对于克隆(Clone),Java有一些限制:1、被克隆的类必须自己实现Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字转载 2017-07-17 14:54:56 · 482 阅读 · 0 评论 -
Java进阶之Annotation(注解)
本文转发自技术世界,原文链接 http://www.jasongj.com/2016/01/17/Java1_注解Annotation概念Annotation是Java5开始引入的特性。它提供了一种安全的类似于注释和Java doc的机制。实事上,Annotation已经被广泛用于各种Java框架,如Spring,Jersey,JUnit,TestNG。注解相当于是一种嵌入在程序中的元数据,可以使用转载 2017-07-15 10:37:17 · 382 阅读 · 0 评论 -
JDK1.8新特性
简单记录:勿喷Lambda表达式:进入函数式编程Optional类:解决空值引用问题default方法:可在接口中写入方法体,解决多继承的默认方法实现原创 2016-10-09 09:56:24 · 309 阅读 · 0 评论 -
java -source 1.6 中不支持 switch 中存在字符串
今天在运行一个maven工程的时候,编译时出错了:java -source 1.6 中不支持 switch 中存在字符串,[ERROR] (请使用 -source 7 或更高版本以允许 switch 中存在字符串),当时我发现工程的配置确实是1.8版本,后来把工程在eclipse中删除了,重新导入一下,java版本居然变成了1.6,然后就更改了版本,重新install一下就好了。(原因:1.6原创 2016-11-21 14:03:13 · 3700 阅读 · 0 评论 -
Spring Boot启动报错:Failed to instantiate [ClassName]: No default constructor found;
今天在Spring Boot工程启动时报错了,提示不能初始化该类,原因是找不到默认的构造方法,我看了一下,我也有写构造方法:public class H2DbOperation extends AbstractDbOperation{ public H2DbOperation(String url, String name, String password, Connection conn原创 2016-11-15 14:11:00 · 10814 阅读 · 0 评论 -
Java遍历List列表
以List list = new ArrayList();为例1.迭代器遍历Iterator Iterator iter = list.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); }2. List接口中封装的方法,依次遍历 for(int i=0原创 2016-11-15 10:20:13 · 451 阅读 · 0 评论 -
No suitable constructor found for type [simple type, class com.bonc.vbap.dataservice.core.metadata.i
这是在使用Jackson对接口或者抽象类进行反序列化的时候出现的问题,从问题中可以看出是构造器的问题,找不到默认的构造器,解决办法是只需要在接口的实现类或者抽象类的子类中去构造一个无参构造方法即可。原创 2016-09-22 11:32:14 · 2251 阅读 · 0 评论 -
Apache Thrift入门简单实战(Java)
Thrift是Apache旗下开源项目,官网地址:thrift.apache.org,本篇的开发语言使用Java。1.Thrift协议:Thrift支持的协议包含二进制(TBinary,TBinarySortableProtocol),JSON(TJSONProtocol,TSimpleJsonProyocol),compact协议(TCompactProtocol)等等,默认是使用的二进制协原创 2017-08-23 16:05:23 · 1225 阅读 · 0 评论 -
java.lang.Object.hashCode()方法
Object类的一个重要方法之一:hashCode();首先看一下Object中对此方法的定义: /** * Returns a hash code value for the object. This method is * supported for the benefit of hash tables such as those provided by *原创 2017-09-20 11:23:26 · 1538 阅读 · 0 评论 -
Jackson异常问题和解决方案总结
转自:http://www.baeldung.com/jackson-exception1. 前言在本教程中, 我们会回顾最常见的Jackson异常 – theJsonMappingException andUnrecognizedPropertyException.最后,我们将会简要讨论Jackson 中的no such method错误。2. “Json原创 2017-10-30 18:21:52 · 65607 阅读 · 4 评论 -
com.sun.jdi.InvocationException occurred invoking method
在Java程序debug调试的时候,在断点中查看某个对象的值时,出现了以上的错误: com.sun.jdi.InvocationException occurred invoking method,显示在调用的时候发生了调用异常,如图对象时一个ArrayList对象,我开始以为是对象的内容有问题,所以看一下list中的内容,如下居然显示一个空指针的异常,但是这个空指针的原创 2017-09-21 20:31:21 · 39456 阅读 · 1 评论 -
com.fasterxml.jackson.databind.JsonMappingException:No suitable constructor found for type
1.有可能是反序列的类确实没有默认构造方法,检查一下。2.因为我遇到的问题不属于1的情况(最后发现是内部类的问题),首先我是建立了这样一个类,作用是作一个序列化和反序列化的测试:public class Test { @org.junit.Test public void main() throws Exception { Seiral seiral = new Sei原创 2017-08-11 14:28:11 · 3423 阅读 · 0 评论 -
Connection中的createStatement()方法调用时出现空指针异常
后端是一个验证数据库的流程Connection conn;Statement state = conn.createStatement();作用是返回一个链接数据库的结果,结果出现了空指针异常,说明是数据库连接错误,返回空值,检查数据库的配置是否正确,用户名和密码,和端口号原创 2016-10-20 13:32:53 · 15865 阅读 · 1 评论 -
Jconsole初体验
环境:Mac OS 10.12.1, JDK 1.8首先在终端输入:jconsole,启动Java监视和管理控制台这里可以连接本地进程。也可以进行远程监控,这就需要知道远程的连接的端口用户名密码等信息。我在本地启了一个Spring Boot应用,这个时候在本地进程栏中就出现了刚刚启动的应用名FisherApplication,选择此应用连接进入监控的控制台。在连原创 2017-08-25 11:31:15 · 3869 阅读 · 0 评论 -
JDK1.8 default
这里的default是在一个接口继承了多个接口时,实现方法默认继承某一个父接口的方法。接口A:public interface A {default String getString(){return "interface A";}}接口B:public interface B {default String getString(){return "inte原创 2016-10-09 10:12:45 · 1130 阅读 · 0 评论 -
Java8数组和List相互转换
使用Java 1.8中的循环转换数组为List,代码: private List arrayToList(T[] objects) { return Stream.of(objects).map(object -> { return object; }).collect(Collectors.toList()); }原创 2016-11-28 15:00:11 · 69707 阅读 · 2 评论 -
Java-互相关联的实体无限递归问题
今天在测试的时候出现了一个bug,在把关联实体序列化返回的过程中报错了,提示Caused by: java.lang.StackOverflowError: null这个是堆栈溢出错误,根据错误线索查找,最后发现Column和Table实体互相关联,也就是说Column实体中有Table属性,Table实体中也有Column属性,导致了在序列化的过程中出现了死循环,以至堆栈溢出报错。原创 2016-11-29 15:41:39 · 2924 阅读 · 2 评论