
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 · 1815 阅读 · 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 · 2674 阅读 · 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 · 458 阅读 · 0 评论 -
Java代理模式 静态代理 动态代理
目录静态代理动态代理代理的基本构成抽象角色:声明真实对象和代理对象的共同接口,这样可在任何使用真实对象的地方都可以使用代理对象。 代理角色:代理对象内部含有真实对象的引用,从而可以在任何时候操作真实对象。代理对象提供一个与真实对象相同的接口,以便可以在任何时候替代真实对象。代理对象通常在客户端调用传递给真实对象之前或之后,执行某个操作,而不是单纯地将调用传递给真实对象,同时,代理...原创 2018-09-23 16:45:30 · 172 阅读 · 0 评论 -
Eclipse Memory Analyzer —— MAT查找内存泄漏工具
一、MAT是什么?MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。二、如何使用MAT本文以一...原创 2018-09-24 00:12:42 · 17965 阅读 · 1 评论 -
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 · 135610 阅读 · 4 评论 -
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 · 3999 阅读 · 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 · 1653 阅读 · 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 · 1309 阅读 · 2 评论 -
jvm是如何判断两个类是否相等的
通过两种方式:①类的全限定名②类的加载器我们知道,类的加载主要分为以下三步:1、加载:根据路径找到对应的.class文件2、连接:又分为验证:检查待加载的class正确性 准备:给类的静态变量分配空间 解析:将符号引用转为直接引用3、初始化:对静态变量和静态代码块执行初始化工作加载阶段通过类的全限定名来获取定义此类的二进制字节流,并将字节流的静态存储结构转化为方法区的运行...原创 2018-09-17 12:09:59 · 1305 阅读 · 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 · 1157 阅读 · 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 · 53130 阅读 · 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 · 42984 阅读 · 2 评论 -
关于JDBC中 ResultSet 对象的 getObject() 方法返回的数字是 BigDecimal 型
Object columnValue = resultSet.getObject(columnLabel);if(columnValue instanceof BigDecimal){ columnValue = ((BigDecimal) columnValue).intValue();}使用 intValue() 方法进行强转即可原创 2018-08-29 01:57:25 · 12154 阅读 · 0 评论 -
Java 垃圾回收机制与几种垃圾回收算法
一、如何确定某个对象是“垃圾”?这一小节先了解一个最基本的问题:如果确定某个对象是“垃圾”?既然垃圾收集器的任务是回收垃圾对象所占的空间供新的对象使用,那么垃圾收集器如何确定某个对象是“垃圾”?通过什么方法判断一个对象可以被回收了。在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行。那么很显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。不失...原创 2018-09-24 14:52:46 · 52079 阅读 · 4 评论 -
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 · 295 阅读 · 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 · 1697 阅读 · 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 · 5387 阅读 · 0 评论 -
JavaBean的字段名命名大小写问题
字段的前两个字母要么全部大写,要么全部小写否则会出错:)JavaBean 中的属性是通过 get/set 方法名得来的,因此 :getSname 对应的属性名是 snamegetSName 对应的属性名是 SName如果写成 sName 或者 Sname 的话就是不合法的属性名。...原创 2019-03-05 16:41:32 · 1511 阅读 · 0 评论 -
把数组排成最大的数
前几天做到这个题,当时蒙住了,只想着按位比较,把拼接比较给忘了,现在想了一下发现自己那时候好蠢,记录一下 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最大的一个思路:将整型数组转换成String数组,然后将String数组排序,把m和n拼接成的mn和nm按照字符串大小的比较规则来处理即可,如果mn < nm,应该打印出nm,即n应该排在m...原创 2018-10-08 00:15:49 · 1009 阅读 · 0 评论 -
Java中Runnable()和Callable()的区别
区别点:Callable规定的方法是call(),Runnable规定的方法是run(); Callable的任务执行后可返回值,而Runnable的任务是不能返回值; call方法可以抛出异常,run方法不可以;相同点:两者都是接口; 两者都需要调用Thread.start()启动线程;...原创 2018-09-28 23:21:36 · 1587 阅读 · 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 · 333 阅读 · 0 评论 -
Java中String为什么设计成不可变类
1、字符串常量池字符串常量池是方法区中一块存储区域,当创建一个字符串常量的时候,判断该字符串字在符串字符串常量池中是否已经存在,只有当字符串是不可变的,字符串池才有可能实现。如果存在,返回已经存在的字符串的引用;如果不存在,则创建一个新的字符串常量,并返回其引用。String string1 = "abcd";String string2 = "abcd";变量string1,s...原创 2018-09-20 23:45:32 · 579 阅读 · 0 评论 -
Java中Comparable和Comparator的区别
一、Comparable简介Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:package java.lang;...原创 2018-09-20 13:50:32 · 130 阅读 · 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 · 3579 阅读 · 0 评论 -
BIO与NIO、AIO的区别
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到...转载 2018-09-20 12:41:12 · 114 阅读 · 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 · 2484 阅读 · 0 评论 -
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
原文:https://javadoop.com/post/hashmap今天发一篇”水文”,可能很多读者都会表示不理解,不过我想把它作为并发序列文章中不可缺少的一块来介绍。本来以为花不了多少时间的,不过最终还是投入了挺多时间来完成这篇文章的。网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤...转载 2018-09-25 00:45:07 · 164 阅读 · 0 评论 -
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 · 1425 阅读 · 0 评论 -
Java常用类的问答题
String s = new String("xyz");创建了几个String Object答:两个,一个字符对象,一个字符对象引用对象-------------------------------------------------------Math.round(11.5)等于多少? Math.round(-11.5)等于多少答: Math.round(11.5)==12;Mat...原创 2018-08-14 02:19:25 · 142 阅读 · 0 评论 -
Java异常处理的问答题
Collection 和 Collections的区别答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个工具类,提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作--------------------------------------------------Set里的元素是不能重复...原创 2018-08-10 13:02:25 · 247 阅读 · 0 评论 -
Java中只有值传递!Java中只有值传递!Java中只有值传递!
重要的事情说三遍!对于Java的传递类型,是很多初学者,甚至很多高级程序员都有的困惑。不涉及编程语言,什么是值传递和引用传递:值传递:是指在调用函数时将实参复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实参。引用传递:是指在调用函数时将实参的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实参。但在Java中,只有值传递:在调用方法时:...原创 2018-08-09 23:45:25 · 848 阅读 · 0 评论 -
Eclipse创建子包时显示与父包是并列关系的解决方法
如图,将 Package Presentation 选项中的 Flat 改为 Hierarchical 即可:原创 2018-08-04 00:05:25 · 1711 阅读 · 0 评论 -
Java小练习 数字翻转
数字翻转 用的是数学思想 逐步取余再进位 也可以用数组实现 过后补解题思路:1、用一个变量newNum(初始化为0)保存改变之后的值;2、将oldNum的个位通过取余存放在temp里,且将该位加给newNum,后令newNum乘10;3、将oldNum除以10,进一位;4、判断进位后的oldNum是否为0,若为0,则令newNum除以10(因为在第2步newNum多乘了一次10...原创 2018-07-22 17:12:48 · 367 阅读 · 0 评论 -
Java中的增强型for循环
增强型for循环定义如下:for(ElementType element: arrayName){};上述for循环可被读为:for each element in arrayName do {...}-------------------------------------------------------------------------------------------...原创 2018-07-27 00:52:14 · 67229 阅读 · 17 评论 -
Java为什么在实例化子类的对象时,会先调用父类的构造器
1、为什么在实例化子类的对象时,会先调用父类的构造器?答:子类继承父类后,获取到父类的属性和方法,这些属性和方法在使用前必须先初始化,所以须先调用父类的构造器进行初始化2、在哪里调用父类的构造器?答:在子类构造器的第一行会隐式的调用 super();,即调用父类的构造器 如果父类中没有定义空参的构造器,则必须在子类的构造器的第一行显示的调用super(参数); ...原创 2018-07-29 18:10:50 · 9363 阅读 · 9 评论 -
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 · 193 阅读 · 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 · 5781 阅读 · 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 · 1182 阅读 · 0 评论 -
Java数组相关的问答题
java能动态分配数组吗? 答:可以。int i = 12;int[] myInt = new int[i];---------------------------------------------------我怎么知道数组的长度?用.length属性获取---------------------------------------------------数组有没有length(...原创 2018-07-25 12:43:30 · 692 阅读 · 0 评论