Java
文章平均质量分 51
NFE_W
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
docker 部署 ELK
docker 部署 ELKdocker pull docker.elastic.co/elasticsearch/elasticsearch:7.16.2docker pull docker.elastic.co/logstash/logstash:7.16.2docker pull docker.elastic.co/kibana/kibana:7.16.2# Linux 特有配置sysctl -w vm.max_map_count=262144sysctl -p# Linux 配置结束原创 2021-12-28 14:47:58 · 1931 阅读 · 0 评论 -
关于使用AopContext.currentProxy()的报错问题
报错内容如下:java.lang.IllegalStateException: Cannot find current proxy: Set 'exposeProxy' property on Advised to 'true' to make it available.很多人说不到点子上,什么xml配置,例如<aop:aspectj-autoproxy proxy-target-class="true"expose-proxy="true"/>都2022年了,人均SpringBoo原创 2021-11-19 10:10:27 · 2897 阅读 · 0 评论 -
记录一个BigDecimal关于0值相等比较的问题
BigDecimal a = new BigDecimal("0.0");a.equals(BigDecimal.ZERO) // falsea.compareTo(BigDecimal.ZERO) == 0 // true原因:// BigDecimal#equals 源码public boolean equals(Object x) { if (!(x instanceof BigDecimal)) return false; BigDecimal xDec原创 2021-05-13 10:39:43 · 541 阅读 · 0 评论 -
Java 垃圾回收机制与几种垃圾回收算法
一、如何确定某个对象是“垃圾”?这一小节先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?通过什么方法判断一个对象可以被回收了。在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。不失...原创 2018-09-24 14:52:46 · 52976 阅读 · 4 评论 -
关于JDBC中 ResultSet 对象的 getObject() 方法返回的数字是 BigDecimal 型
Object columnValue = resultSet.getObject(columnLabel);if(columnValue instanceof BigDecimal){ columnValue = ((BigDecimal) columnValue).intValue();}使用 intValue() 方法进行强转即可原创 2018-08-29 01:57:25 · 12283 阅读 · 0 评论 -
JVM的新生代、老年代、永久代(元空间)、MinorGC、MajorGC
转载自:https://www.cnblogs.com/ygj0930/p/6522828.html目录一、新生代:二、老年代:三、永久代:参考资料:http://blog.youkuaiyun.com/flamezyg/article/details/44673951http://www.blogjava.net/ldwblog/archive/2013/07/24/401919...转载 2018-09-24 01:26:20 · 1718 阅读 · 0 评论 -
GC详解及Minor GC和Full GC触发条件总结
原文:https://blog.youkuaiyun.com/yhyr_ycy/article/details/52566105GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制要准确理解Java的垃...转载 2018-09-24 01:22:27 · 4107 阅读 · 0 评论 -
JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置
XmnXmsXmxXss有什么区别Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。-Xms 堆内存的最小大小,默认为物理内存的1/64-Xmx 堆内存的最大大小,默认为物理内存的1/4-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn-Xss 设置每个线程可使用的内存大小,即...原创 2018-09-24 01:11:53 · 137340 阅读 · 4 评论 -
Eclipse Memory Analyzer —— MAT查找内存泄漏工具
一、MAT是什么?MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。二、如何使用MAT本文以一...原创 2018-09-24 00:12:42 · 18477 阅读 · 1 评论 -
Java代理模式 静态代理 动态代理
目录静态代理动态代理代理的基本构成抽象角色:声明真实对象和代理对象的共同接口,这样可在任何使用真实对象的地方都可以使用代理对象。 代理角色:代理对象内部含有真实对象的引用,从而可以在任何时候操作真实对象。代理对象提供一个与真实对象相同的接口,以便可以在任何时候替代真实对象。代理对象通常在客户端调用传递给真实对象之前或之后,执行某个操作,而不是单纯地将调用传递给真实对象,同时,代理...原创 2018-09-23 16:45:30 · 213 阅读 · 0 评论 -
使用异或交换两个相同数的小问题
通过异或运算不需要任何中间变量交换即可实现数, 如下:public void swap(int a, int b) { a ^= b; b ^= a; a ^= b;}但是当两个数值相同时,则变成了:a ^= a;a ^= a;a ^= a;结果输出a为0,这是我们不想看到的改进如下:public void swap(int a, int b) { i...原创 2018-09-10 13:24:02 · 1366 阅读 · 2 评论 -
jvm是如何判断两个类是否相等的
通过两种方式:①类的全限定名②类的加载器我们知道,类的加载主要分为以下三步:1、加载:根据路径找到对应的.class文件2、连接:又分为验证:检查待加载的class正确性 准备:给类的静态变量分配空间 解析:将符号引用转为直接引用3、初始化:对静态变量和静态代码块执行初始化工作加载阶段通过类的全限定名来获取定义此类的二进制字节流,并将字节流的静态存储结构转化为方法区的运行...原创 2018-09-17 12:09:59 · 1372 阅读 · 0 评论 -
输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少
输入描述一个正整数n,范围在[1, 2^31 - 1]输出描述从0到n这n+1个数中,有多少个数满足条件:该数的二进制表示没有3个连续的1输入一9输出一90-9这十个数中只有7(111)不满足条件,因此输出为9。输入二17输出二150-17这十八个数中,7(111)、14(1110)、15(1111)不满足条件,因此输出为15。...原创 2018-09-16 01:28:51 · 1234 阅读 · 0 评论 -
网易云音乐.uc格式的缓存文件转.mp3
音乐的缓存文件与源文件大小相同,所以没有经过压缩,考虑异或运算,经试验发现每字节与 0xa3 异或即可import java.io.*;public class Change { public static void main(String[] args) { DataInputStream dis = null; DataOutputStream dos = null; ...原创 2018-08-29 23:28:50 · 53602 阅读 · 29 评论 -
Java中 List,Set,数组之间的转换
数组转ListString[] str = new String[]{"AA", "BB", "CC"};List list = Arrays.asList(str);注:Arrays.asList()方法返回的List不能add、remove对象,因为该方法的实现是使用参数引用的数组的大小来new的一个ArrayList 如想进行add、remove操作,应使用如下方式进行转换:...原创 2018-09-04 13:49:49 · 43131 阅读 · 2 评论 -
JDBC中Statement和 PreparedStatement的区别
关系:PreparedStatement继承自Statement,两者都是接口区别:PreparedStatement是预编译的,比Statement效率高,可以使用占位符,可防止SQL注入import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java....原创 2018-08-28 13:40:27 · 1482 阅读 · 0 评论 -
Java的四种引用 强引用 软引用 弱引用 虚引用
原文:https://www.cnblogs.com/yw-ah/p/5830458.html强引用:只要引用存在,垃圾回收器永远不会回收Object obj = new Object();//可直接通过obj取得对应的对象 如obj.equels(new Object());而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放...转载 2018-09-24 15:07:42 · 363 阅读 · 0 评论 -
ArrayList循环遍历并删除元素的陷阱
import java.util.ArrayList;public class ArrayListRemove { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("a"); list.add("b");...原创 2018-09-24 23:23:29 · 1778 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
原文:https://javadoop.com/post/hashmap今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤...转载 2018-09-25 00:45:07 · 226 阅读 · 0 评论 -
List、set、Map的底层实现原理
原文:https://blog.youkuaiyun.com/xzp_12345/article/details/79251174目录ArrayList实现原理要点概括LinkedList实现原理要点概括HashMap实现原理要点概括Hashtable实现原理要点概括ConcurrentHashMap实现原理要点概括HashSet实现原理要点概括LinkedHashMap实现原...转载 2018-09-25 01:53:41 · 2547 阅读 · 0 评论 -
BIO与NIO、AIO的区别
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到...转载 2018-09-20 12:41:12 · 152 阅读 · 0 评论 -
Integer的缓存机制
public class CompareExample { public static void main(String[] args) { Integer num1 = new Integer(100); Integer num2 = new Integer(100); System.out.println(num1 == num2); System.out.print...原创 2018-09-20 13:10:26 · 3659 阅读 · 0 评论 -
Java中Comparable和Comparator的区别
一、Comparable简介Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:package java.lang;...原创 2018-09-20 13:50:32 · 187 阅读 · 0 评论 -
Java中String为什么设计成不可变类
1、字符串常量池字符串常量池是方法区中一块存储区域,当创建一个字符串常量的时候,判断该字符串字在符串字符串常量池中是否已经存在,只有当字符串是不可变的,字符串池才有可能实现。如果存在,返回已经存在的字符串的引用;如果不存在,则创建一个新的字符串常量,并返回其引用。String string1 = "abcd";String string2 = "abcd";变量string1,s...原创 2018-09-20 23:45:32 · 642 阅读 · 0 评论 -
Java实现单链表的反转
Node类: public class Node { int data; Node next; public Node(int data) { this.data = data; }}迭代实现:先将下一节点记录下来,然后让当前节点指向上一节点,再将当前节点记录下来,再让下一节点变为当前节点public static Node rev...原创 2018-09-21 00:26:46 · 381 阅读 · 0 评论 -
Java中Runnable()和Callable()的区别
区别点:Callable规定的方法是call(),Runnable规定的方法是run(); Callable的任务执行后可返回值,而Runnable的任务是不能返回值; call方法可以抛出异常,run方法不可以;相同点:两者都是接口; 两者都需要调用Thread.start()启动线程;...原创 2018-09-28 23:21:36 · 1642 阅读 · 0 评论 -
把数组排成最大的数
前几天做到这个题,当时蒙住了,只想着按位比较,把拼接比较给忘了,现在想了一下发现自己那时候好蠢,记录一下 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最大的一个思路:将整型数组转换成String数组,然后将String数组排序,把m和n拼接成的mn和nm按照字符串大小的比较规则来处理即可,如果mn < nm,应该打印出nm,即n应该排在m...原创 2018-10-08 00:15:49 · 1101 阅读 · 0 评论 -
JavaBean的字段名命名大小写问题
字段的前两个字母要么全部大写,要么全部小写否则会出错:)JavaBean 中的属性是通过 get/set 方法名得来的,因此 :getSname 对应的属性名是 snamegetSName 对应的属性名是 SName如果写成 sName 或者 Sname 的话就是不合法的属性名。...原创 2019-03-05 16:41:32 · 1607 阅读 · 0 评论 -
今天发现了String.valueOf(null)的一个有意思的设定
今天写代码需要进行一个equals判断,刚开始我也没多想直接这么写的:Object oldValue = field.get(oldObj);Object newValue = field.get(newObj);if (!String.valueOf(oldValue).equals(String.valueOf(newValue))) { resultMap.put(fiel...原创 2019-04-12 09:16:06 · 5483 阅读 · 0 评论 -
用Eclipse给github提交代码,提示rejected - non-fast-forward错误的解决办法
错误原因出现 rejected - non-fast-forward 错误,是由于本地Repository和远程Repository中的文件出现冲突,原因之一便是待push的代码在远端发生改变导致本地和远程文件个数不同(例如在github上手动修改README.md后)。解决办法1.打开 Git Repositories页面(打开Windows - Show View - Others...原创 2018-08-07 03:17:55 · 8901 阅读 · 2 评论 -
Java运算符相关的问答题
写出输出的结果.//考查运算符的优先级class Demo{ public static void main(String[] args){ int x=0,y=1; if(++x==y-- & x++==1||--y==0) System.out.println("x="+x+",y="+y);//x = 2,y =...原创 2018-07-23 21:57:45 · 435 阅读 · 0 评论 -
Java流程控制相关的问答题
写出结果。class Demo{ public static void main(String[] args) { int m = 0,n = 3; if(m > 0) if(n > 2) System.out.println("A"); else ...原创 2018-07-23 22:15:29 · 1078 阅读 · 0 评论 -
Java小练习 十进制转二进制与十六进制
import java.util.*;/***十进制转二进制与十六进制的练习*@author yrwan*/public class DecToBinAndHex{ public static void main(String[] args){ System.out.print("输入待转换的十进制数字:"); Scanner n = new Scanner(System.i...原创 2018-07-24 14:50:43 · 1007 阅读 · 0 评论 -
Java小练习 数组冒泡排序 选择排序
三种排序 冒泡排序 直接选择排序 调用Arrays工具类排序package com.yrwan.java;import java.util.Arrays;public class TestArraySort { public static void main(String[] args) { System.out.println("排序前的数组为:"); int[] arr...原创 2018-07-25 01:55:04 · 278 阅读 · 0 评论 -
Java数组相关的问答题
java能动态分配数组吗? 答:可以。int i = 12;int[] myInt = new int[i];---------------------------------------------------我怎么知道数组的长度?用.length属性获取---------------------------------------------------数组有没有length(...原创 2018-07-25 12:43:30 · 749 阅读 · 0 评论 -
Java面向对象编程的问答题
哪个选项和show函数重载class Demo{ void show(int a,int b,float c){}}A.void show(int a,float c,int b){}//yesB,void show(int a,int b,float c){}//一模一样。不可以出现在同一个类中。C.int show(int a,float c,int b){return...原创 2018-07-28 19:46:33 · 1242 阅读 · 0 评论 -
关于String str =new String("abc")和 String str = "abc"的比较
原地址:https://www.cnblogs.com/OnlyCT/p/5433410.htmlString是一个非常常用的类,应该深入的去了解String如:String str =new String("abc")String str1 = "abc"System.out.println(str == str1)System.out.println(str.equal...转载 2018-07-26 00:47:05 · 5921 阅读 · 0 评论 -
Java小练习 String的两种不同赋值方法的测试比较
对上一篇转载的String两种不同赋值方法进行了测试,测试结果如下:package com.yrwan.java;//测试String两种不同赋值方法public class TestString { public static void main(String[] args) { String str1 = new String("HelloWorld"); String s...原创 2018-07-26 01:20:49 · 246 阅读 · 0 评论 -
Java为什么在实例化子类的对象时,会先调用父类的构造器
1、为什么在实例化子类的对象时,会先调用父类的构造器?答:子类继承父类后,获取到父类的属性和方法,这些属性和方法在使用前必须先初始化,所以须先调用父类的构造器进行初始化2、在哪里调用父类的构造器?答:在子类构造器的第一行会隐式的调用 super();,即调用父类的构造器 如果父类中没有定义空参的构造器,则必须在子类的构造器的第一行显示的调用super(参数); ...原创 2018-07-29 18:10:50 · 9477 阅读 · 9 评论 -
Java中的增强型for循环
增强型for循环定义如下:for(ElementType element: arrayName){};上述for循环可被读为:for each element in arrayName do {...}-------------------------------------------------------------------------------------------...原创 2018-07-27 00:52:14 · 67396 阅读 · 17 评论
分享