● Java
文章平均质量分 68
_夜渐凉
_与其临渊羡鱼,不如退而结网
展开
-
(转)Java 位运算符 &、|、^、~、<<、>>、>>>
1)闲扯关于位运算符无非也就 与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)、无符号右移(>>>)位运算其实就是二进制的运算,加减乘除适用于十进制,而位运算就是二进制的运算,但是由于我们的运算都是基于十进制来说的,所以会有点绕,略微有点难懂,接下来言归正传2)关于二进制 我们在编码过程中应该会了解很多不同的进制,除去常用的十进制,还有二进制、八进制、十六进制,因为我们的位运算符主要用到二进制,就只讲讲二进制..转载 2022-03-14 15:13:44 · 853 阅读 · 0 评论 -
自定义kafka高效的protoStuff序列化
自定义kafka高效的protoStuff序列化原创 2022-03-07 17:02:30 · 3696 阅读 · 0 评论 -
检查型异常(Checked Exception)与非检查型异常(Unchecked Exception)
这两个概念看了忘,碰着了又看,老是傻傻的分不清楚,今天把心得结合从网上搜的资料简单整理一下,希望帮自己明确区分开这两个概念,并牢牢的记住1.检查型异常(Checked Exception) 个人理解:所谓检查(Checked)是指编译器要检查这类异常,检查的目的一方面是因为该类异常的发生难以避免,另一方面就是让开发者去解决掉这类异常,所以称为必须处理(try ...catch)的异常。如...转载 2020-01-16 10:34:30 · 1558 阅读 · 1 评论 -
@PostConstruct注解简述
使用场景:如果想在生成对象时候完成某些初始化数据的操作,而偏偏这些初始化操作又依赖于依赖业务类的注入,那么就无法在构造函数中实现。而这时,使用@PostConstruct注解一个方法即可实现初始化操作。@PostConstruct注解是Java自身的注解,Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void() 方法。被@PostConstruct...原创 2020-01-03 18:33:09 · 386 阅读 · 0 评论 -
JAVA中ListIterator和Iterator详解与辨析
在使用java集合的时候,都需要使用Iterator。但是java集合中还有一个迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的时候可以使用。这两种迭代器有什么区别呢?下面我们详细分析。这里有一点需要明确的时候,迭代器指向的位置是元素之前的位置,如下图所示:这里假设集合List由四个元素List1、List2、List3和...转载 2019-12-02 09:25:27 · 248 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: org/apache/commons/collections/CollectionUtils
maven项目通过XMLConfiguration读取项目resources下的xml文件时出现报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/CollectionUtils"C:\Program Files\Java\jdk1.8.0_201\bi...原创 2019-11-15 17:00:24 · 4480 阅读 · 0 评论 -
Optional int parameter 'rank' is present but cannot be translated into a null value due to being dec
报错描述:Optional int parameter 'rank' is present but cannot be translated into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding pri...原创 2019-10-15 16:25:34 · 364 阅读 · 0 评论 -
Java中如何将中文转换为英文String
在JAVA 编程中我们经常免不了需要对中文排序,而往往我们排序的依据就是中文的首字母,当然无论依据什么排序,我们都需要将中文转换成为String首先,我们要调用一个库pinyin4j-2.5.0.jar下载地址:http://sourceforge.net/projects/pinyin4j/下载解压,里面有个pinyin4j-2.5.0.jar,使用这个库即可。其次,使用这个库,...转载 2019-06-27 11:00:29 · 16049 阅读 · 0 评论 -
Java Properties类使用详解
概述Properties 继承于 Hashtable。表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串。Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。我们在很多需要避免硬编码的应用场景下需要使用properties文件来加载程序需要的配置信息,比如JDBC、M...转载 2019-07-08 11:55:22 · 1062 阅读 · 0 评论 -
java 读取 json文件的两种方式
resource下的json文件[ { "type": 1, "sites": { "site": [ { "id": "1", "name": "one" }, { "id": "2", "name": "two" ...原创 2019-06-03 19:42:34 · 21751 阅读 · 3 评论 -
在for循环中remove list报错越界的问题,及Iterator简介
—— Java中的集合边遍历边删除是比较好的选择是:使用迭代器中的方法Iterator简介Iterator的API 关于Iterator主要有三个方法:hasNext()、next()、remove()hasNext:没有指针下移操作,只是判断是否存在下一个元素 next:指针下移,返回该指针所指向的元素 remove:删除当前指针所指向的元素,一般和next...原创 2019-06-14 13:00:14 · 966 阅读 · 0 评论 -
Java执行字符串表达式 ScriptEngine应用,并结合StringSubstitutor 替换占位符
转载内容:今天遇到了一个需要将数据库中保存的表达式,替换其中的字符,并计算出值,java是不能直接计算的例如:double d = (3+5-(2-4)*2)/24;没有问题 但是:遇到 "(3+5-(2-4)*2)/24" 字符串的格式,就不能使用了 java是无法解决,但是javaScript中有一个eval函数是可以执行的,所以,可以通过其他途径执行javaS...原创 2019-06-05 18:16:26 · 1683 阅读 · 0 评论 -
Java 之HashMap.values()方法误用
1.出错 今天在测试代码的时候发现程序报错,看代码才知道是使用HashMap.values()方法的时候出错。因为项目中需要获取Map的值的集合然后进行遍历,所以就很自然的调用了HashMap.values()方法,如下所示public class Test { public static void main(String[] args) { Map&l...转载 2019-05-23 17:00:00 · 6931 阅读 · 2 评论 -
Apache commons StringSubstitutor 替换占位符
Java中,对于格式化字符串,不论是String.format,还是MessageFormat,都很难用。Velocity倒是不错,可就是太重。今天给大家推荐Apache commons-lang中的StrSubstitutor。文档地址:https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/la...转载 2019-05-23 15:44:28 · 7943 阅读 · 2 评论 -
增强for循环实现原理和for循环实战性能优化
一、增强for循环1. 三种常用for循环// 普通for循环遍历for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + ",");}// 迭代器循环遍历Iterator iterator = list.iterator();while (iterator.hasNext()) {...转载 2019-05-17 16:31:17 · 2454 阅读 · 0 评论 -
Bean之间的copy的4中方法中 —— Cglib的BeanCopier的性能最佳
错误案例现象描述:性能测试时,发现CPU占有率很高,经过jprofiler的分析,发现CPU大部分被BeanUtils占用了,成了性能瓶颈。错误分析工作中,经常会碰到两个bean之间的拷贝,如MemberDO拷贝到MemberVOBeanUtils.copyProperties(member, memberVO);BeanUtils是通过效率相对低的反射机制进行属性值的拷...原创 2019-05-17 15:33:01 · 1675 阅读 · 0 评论 -
MongoDB 原子操作——findAndModify()函数
MongoDB 原子操作mongodb不支持事务,所以,在你的项目中应用时,要注意这点。无论什么设计,都不要要求mongodb保证数据的完整性。但是mongodb提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到的文档没有保存完整的情况。原子操作数据模型考虑下面的例子,图...原创 2019-07-16 12:19:37 · 8024 阅读 · 0 评论 -
Java MongoTemplate查询返回指定字段(内嵌集合)及指定数量的数据
假设我有一个实体类Article@Data@Document(collection = "articles")public final class Article { @Id private String id; private String name; private String url; private String author; ...转载 2019-07-24 11:50:05 · 9337 阅读 · 0 评论 -
MongoDB java 3.2版本查询指定列和排序的补充(待解决:对内嵌集合内的元素进行排序)
因为需要最近使用了mongoDB,上官网一看现在都mongo-java-driver-3.2.2.jar了(以前接触2.X).于是下载了最新版驱动来用(DB版本:db version v2.4.9),因为新,资料少所以也遇到一些问题,以下就分享出来:官方文档里面的东西已经很全面了.常操作一看就明白,就不多说了,可通过以下链接自行查看:https://docs.mongodb.org/get...转载 2019-07-24 12:12:52 · 373 阅读 · 0 评论 -
@Deprecated注解功能
昨天看阿里的java开发手册,其中有一个OOP规约(网上百度了一下,这个规约是阿里自己制定的),其中有一条:外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生影响。接口过时必须加 @Deprecated 注解,并清晰地说明采用的新接口或新服务是什么。这其中提到了 @Deprecated 注解,在之前的开发过程中没遇到过这个注解,于是查了下他的...转载 2019-10-11 17:57:57 · 168 阅读 · 0 评论 -
Java 通过HttpRequest获取请求用户真实IP地址
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.javapeixun.com.cn...转载 2019-10-11 10:49:52 · 514 阅读 · 0 评论 -
Java 实现哈希化字符串的方法(仅供参考)
仅供参考public class Test { public static void main(String[] args) { System.out.println(hashFunc("9527")); } /* 哈希化字符串的Horner方法: a4*n^4 + a3*n^3 + a2*n^2 + a1*n^1 + a0*n^0 可写成 (...原创 2019-09-20 17:56:03 · 3221 阅读 · 0 评论 -
Java中Volatile关键字详解
一、基本概念先补充一下概念:Java 内存模型中的可见性、原子性和有序性。1,可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。 可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是...转载 2019-08-12 15:58:17 · 105 阅读 · 0 评论 -
浅谈Java中的序列化之当序列化遇上继承关系
父类实现了Serializable,子类不需要实现Serializable相关注意事项: a)序列化时,只对对象的状态进行保存,而不管对象的方法; b)当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口; c)当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化; d)并非所有的对象都可以序列化,至于为什么不可...转载 2019-08-14 14:48:04 · 2427 阅读 · 0 评论 -
关于HashMap初始化容量问题 —— 明确元素的装载数量
使用阿里云代码规范插件扫描后出现以下提示:hashmap should set a size when initalizing,即hashmap应该在初始化时设置一个大小在网上搜到一篇讲解(https://www.cnblogs.com/coderxuyang/p/3718856.html),如下:在元素的装载数量明确的时候HashMap的大小应该如何选择今天看到美团招聘给出...转载 2019-08-08 15:31:13 · 762 阅读 · 1 评论 -
Java MongoTemplate 查询时限制内嵌集合返回的数据量
场景:MongoDB表中的某字段数据量非常大,需要限制只返回该字段 【最新】 的2000条数据数据结构:datas字段中的数据,根据时间排序如下,最新的数据排在文档的最底下{ ... "userid" : "123", "datas" : [ { "id" : "111", "time" : I...原创 2019-07-24 18:29:55 · 2852 阅读 · 0 评论 -
Java MongoDB 获取内嵌集合字段的长度
如果有以下数据,我们想获取数字字段arrayfield的长度,该怎么办呢?{ "_id" : "test_id", "array_field" : [ "value1", "value2", "value3" ]}虽然我们可以直接查询该字段的内容然后获取其长度,但是当数据量大时性能就很差了。这里我们用聚合函...转载 2019-07-24 18:21:16 · 2097 阅读 · 1 评论 -
Java MongoDB 获取内嵌集合和内嵌集合的长度
场景:需要获取嵌套数组datas的长度,这里存的是对象{ ... "userid" : "123", "datas" : [ { "id" : "111", "time" : ISODate("2019-05-21T08:12:13.058+0000") }, {...原创 2019-07-24 16:27:31 · 1733 阅读 · 1 评论 -
guava之ImmutableMap使用实例及好处,immutablemap.of简介
ImmutableMap 的作用就是:可以让java代码也能够创建一个对象常量映射,来保存一些常量映射的键值对。分析以下情景,来具体讨论这个的好处。以下是在js前台的代码,假设现在有需求如下:根据数据库存的某个key字段,来获得不同的提示名字。有以下3种处理方法1:用 多个 if else 语句,只要新添加个字段,你就得添加个 if else ,差评2:用 switch cas...转载 2019-05-20 11:17:53 · 24367 阅读 · 0 评论 -
BigDecimal add方法问题:调用add后,求和结果没变
BigDecimal add问题:调用add后,求和结果没变:public class Test { public static void main(String[] args) { // 总卡路里 List<DietClockItem> foods = new ArrayList<>(); for(int i=...原创 2019-04-24 17:52:34 · 963 阅读 · 0 评论 -
解决cmd中,javac提示:javac不是内部或外部命令,但是运行java、java-version正常的问题
没什么其他原因,要不就是你安装JDK不完整,要不就是你配置环境变量错误。配置环境变量:1,新建一个系统变量。变量名:JAVA_HOME变量值:D:\Java其中变量名可以随便你写,变量值必须是你安装JDK的路径2,系统变量(CLASSPATH),没有就自己新建一个变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME...转载 2019-04-19 08:42:39 · 10132 阅读 · 1 评论 -
Java通过出生日期获取年龄的方法
这个可以正常计算出年龄,会出现年龄负数,暂用待修正;根据情况,参数不同参数即可;不过我觉得在前端输入出生日期时,就应该对日期的选择进行限制。/** * 分页查询 */ @Override public Page<Map> queryAllInfo(Long userId, Long relId, UserType userType, DoctorInf...原创 2018-09-06 10:34:45 · 3061 阅读 · 0 评论 -
Java split()用法
定义和用法split() 方法用于把一个字符串分割成字符串数组。语法stringObject.split(separator,howmany)参数 描述 separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定...原创 2018-09-04 14:26:12 · 2774 阅读 · 0 评论 -
Map取出指定键所映射的值
Map map;Object get = map.get(Object key); //指定Map集合中的键名。if (get instanceof String) { //判断键对应的值是否为String类型 String value = (String) get; //获取指定的value值 System.out.println(value);}该...原创 2018-08-19 12:23:29 · 2659 阅读 · 0 评论 -
编写一个程序,找出大于200的最小的质数
/** * 编写一个程序,找出大于200的最小的质数 * 质数定义为在大于1的自然数中, * 除了1和它本身以外不再有其他因数。 */ package lianxiti; publicclass Di16 { publicstaticvoid main(String[] args) { //法一: inti = 200; ...原创 2018-08-02 09:38:41 · 7474 阅读 · 0 评论 -
给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值(Arrays.sort排序&冒泡)
import java.util.Arrays;/** * 给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值(Arrays.sort排序&冒泡) * @author hp */public class D3 { public static void main(String[] args) { int[] aa ...原创 2018-08-02 09:37:58 · 4914 阅读 · 1 评论 -
在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标
/** * 在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标。 * @author hp */public class D6 { public static void main(String[] args) { int[] aa = {18,25,7,36,13,2,89,63}; int[] bb = new int...原创 2018-08-02 09:37:09 · 3903 阅读 · 0 评论 -
(回文数)由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后为4321
/** * 由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后为4321 */package lianxiti;import java.util.Scanner;public class Di17 { public static void main(String[] args) { Scanner sc = new Scanner(System.in);...原创 2018-08-02 09:34:29 · 5188 阅读 · 0 评论 -
Java中创建线程的4种方式以及区别
摘要:编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例。Java可以用三种方式来创建线程,如下所示:1)继承Thread类创建线程2)实现Runnable接口创建线程3)使用Callable和Future创建线程4)匿名类创建线程(new)下面让我们分别来看看这三种创建...原创 2018-08-01 17:36:58 · 2725 阅读 · 0 评论 -
StringUtils中 isNotEmpty 和isNotBlank的区别
isNotEmpty将空格也作为参数,isNotBlank则排除空格参数参考StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源...转载 2018-08-09 12:51:08 · 13306 阅读 · 0 评论