Java基础
文章平均质量分 64
Java基础,包括jvm,java常用类、方法等的介绍
AlinaIDE
这个作者很懒,什么都没留下…
展开
-
常见十种排序算法总结
最近有时间写了遍十种基础的排序算法,故做下总结。1.分类分类 排序算法 时间复杂度 空间复杂度 稳定性 最好情况 最坏情况 交换 冒泡排序 O(n^2^) O(1) 稳定 O(n) O(n^2^) 快速排序 选择 简单选择 ...原创 2020-12-19 18:06:26 · 273 阅读 · 1 评论 -
idea提示修改项
1.引入依赖时,不推荐@Autowired,可用@Resource2.Number对象比较推荐Objects.equals(a,b),不推荐==,对象可能产生空,不安全3.不推荐Date.getTime(),可能产生NullPointException,推荐Objects.requireNotNull(Date).getTime()4.Arrays.stream(ids.split(","))代替Arrays.asList(ids.split(",")).stream5.能用StringBu原创 2020-06-23 14:38:09 · 467 阅读 · 0 评论 -
IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别(百度)
转自:https://www.cnblogs.com/aspirant/p/6877350.html?utm_source=itdadao&utm_medium=referral如果面试问到IO操作,这篇文章提到的问题,基本是必问,百度的面试官问我三个问题(1)什么是NIO(Non-blocked IO),AIO,BIO(2) java IO 与 NIO(New IO)的区别...转载 2018-07-25 16:40:59 · 231 阅读 · 0 评论 -
缓存淘汰算法--LRU算法
转自:http://flychao88.iteye.com/blog/19776531. LRU1.1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2. 实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1. 新数据插入到链表头部;2. 每当缓存命中(...转载 2018-07-06 19:53:14 · 110 阅读 · 0 评论 -
常见排序算法
参考:https://blog.csdn.net/qq_33101675/article/details/78701270常见排序算法介绍:https://blog.csdn.net/anneCoder/article/details/79751239排序算法稳定性:https://baike.baidu.com/item/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%...原创 2018-07-23 20:30:59 · 149 阅读 · 0 评论 -
解决hash冲突的四个方法
转自:https://www.cnblogs.com/wuchaodzxx/p/7396599.html目录开放定址法线性探测再散列二次探测再散列伪随机探测再散列再哈希法链地址法建立公共溢出区优缺点开放散列(open hashing)/ 拉链法(针对桶链结构)封闭散列(closed hashing)/ 开放定址法通过构造性能良好的哈希函数,可以减少冲...转载 2018-07-23 20:08:51 · 1183 阅读 · 0 评论 -
try catch finally 执行顺序
转自:https://www.cnblogs.com/superFish2016/p/6687549.html在网上看到一些异常处理的面试题,试着总结一下,先看下面代码,把这个方法在main中进行调用打印返回结果,看看结果输出什么。 public static int testBasic(){ int i = 1; try{ i++; ...转载 2018-07-02 15:29:20 · 656 阅读 · 0 评论 -
Quartz原理解析
转自:https://www.cnblogs.com/zhangchengzhangtuo/p/5705672.html最近项目中好多地方都需要用到定时器,一开始用的是netty的hashWheel,后来发现删除任务的时候不是很好删除,于是就放弃了,然后选择了Quartz。hashWheel定时器和Quartz的区别:1)Quartz将定时任务分为任务和触发器,而hashWheel只有任务的概念2...转载 2018-06-11 00:04:26 · 326 阅读 · 0 评论 -
Java 8 中的 Streams API 详解
转自:https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/Streams 的背景,以及 Java 8 中的使用详解陈 争云, 占 宇剑, 和 司 磊2014 年 9 月 11 日发布WeiboGoogle+用电子邮件发送本页面 43为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包...转载 2018-06-16 18:40:58 · 256 阅读 · 0 评论 -
Java Lambda表达式入门
参考自:https://blog.csdn.net/renfufei/article/details/24600507基本语法:(parameters) -> expression或(parameters) ->{ statements; }下面是Java lambda表达式的简单例子:[java] view plain copy// 1. 不需要参数,返回值为 5 () ->...转载 2018-06-16 18:36:40 · 257 阅读 · 0 评论 -
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解
转自:https://www.cnblogs.com/therunningfish/p/5524238.htmlJDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。 现实企业级Java开...原创 2018-06-24 16:05:27 · 593 阅读 · 0 评论 -
ConcurrentHashMap的实现(JDK1.8)
参考自:http://www.importnew.com/23610.htmlhttps://blog.csdn.net/programmer_at/article/details/79715177数据结构1.8中放弃了Segment臃肿的设计,取而代之的是采用Node + CAS + Synchronized来保证并发安全进行实现,结构如下:只有在执行第一次put方法时才会调用initTable...转载 2018-06-24 11:25:13 · 402 阅读 · 0 评论 -
Linux服务器定位CPU高占用率代码位置经历
转自:https://blog.csdn.net/zhu19774279/article/details/51303000最近检查服务器,突然发现有一台的CPU占用率非常高。特此记录定位异常代码的步骤:1. 使用top命令定位异常进程。可以看见12836的CPU和内存占用率都非常高2. 使用top -H -p 进程号查看异常线程3. 使用printf "%x\n" 线程号将...转载 2018-07-30 18:45:32 · 1454 阅读 · 0 评论 -
深入理解Java:String
转自:http://www.cnblogs.com/ITtangtang/p/3976820.html在讲解String之前,我们先了解一下Java的内存结构。 一、Java内存模型 按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。 JVM主要管理两种类型内存:堆和非堆,堆内存(Heap Memory)是在 Java...转载 2018-07-31 11:02:46 · 166 阅读 · 0 评论 -
HashMap报错:java.util.ConcurrentModificationException
转自:https://blog.csdn.net/dyingfair/article/details/56481352HashMap是线程不安全的 ,那么为什么说它是线程不安全的呢?首先来看一下官方API有关HashMap线程不安全的描述:Note that this implementation is not synchronized. If multiple threa...转载 2019-03-23 15:54:09 · 3773 阅读 · 0 评论 -
mib browser打开mib文件
1.如下图,通过mib compiler工具编译.mib格式的文件,点击ok,则会将文件进行编译,编译完成后,如第二张图所示,点击save all按钮将编译后的smidb文件保存到mib browser安装目录的SMI文件下,此处为D:\MG-SOFT\MIB Browser\MIB\SMIDB2.打开mib browser工具,将文件全部加在进来,如第三张图所示。3.查找添加的节点的oi...原创 2019-03-19 20:59:49 · 11425 阅读 · 1 评论 -
数组移位
遇到当场写数组移位的问题,于是写出如下的算法,该算法时间复杂度为n,只需要把数组遍历len遍即可得出结果,当时没觉得该算法的优点,事后仔细想下,查阅了网上的写法,还是觉得该算法更好,只是牺牲了点空间:public static void yiwei2(int[] a, int n){ int len = a.length; int moveLen = n%len...原创 2018-12-03 23:01:11 · 1530 阅读 · 0 评论 -
RocketMQ在window环境下启动配置
1. 官方http://rocketmq.apache.org/下载rocketMQ,解压缩,并放置到对应的目录下2. 配置环境变量ROCKETMQ_HOME(解压后的目录),可选配path3. 进入到ROCKETMQ_HOME的bin目录下,执行mqnamesrv.cmd4. 执行start mqbroker.cmd -n 127.0.0.1:9876...原创 2018-12-12 22:19:09 · 1187 阅读 · 0 评论 -
linux后台运行可执行jar文件
转自:linux下利用nohup后台运行jar文件包程序:https://www.cnblogs.com/kedarui/p/6135895.htmlLinux 运行jar包命令如下: 方式一: java -jar XXX.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...转载 2018-12-12 14:45:11 · 1143 阅读 · 0 评论 -
数据结构——树
一、二叉树(二叉查找树,二叉排序树)特性:1.要么是空树2.若非空,则左子树不为空,且小于根节点的值3.右子树不为空,且大于根节点的值4.左右子树也为二叉树二、平衡二叉树(AVL树)一种特殊的二叉树,每一个节点的左子树和右子树的高度差至多等于1。二叉树上的左子树的深度减去右子树深度的值即为平衡因子BF。三、B树(B-tree)多路查找树:每一个节点的孩子数多于两...原创 2018-11-25 19:01:37 · 137 阅读 · 0 评论 -
CPU的load和使用率
转自:https://www.cnblogs.com/yunxizhujing/p/9382396.html1. 什么是Cpu的Load使用uptime、top或者查看/proc/loadavg都可以看到CPU的load统计,这里有三个值,分别代表1分钟、5分钟和15分钟的CPU Load情况。大部分人认为这三个数值越小说明比较好,如果越高说明系统可能存在问题或负载过高了。...转载 2018-11-23 20:09:00 · 824 阅读 · 0 评论 -
CPU利用率和Load Average
CPU利用率是一个时间段内CPU使用情况的统计,使用率占时间段的比率;Load Average指在一个时间段内使用和在排队的进程数的平均统计。关于CPU和Load Average解释比较好的一篇转载文章可参见:https://blog.csdn.net/liwenxia626/article/details/84402891或者作者原文https://www.cnblogs.com/yun...原创 2018-10-09 20:51:53 · 390 阅读 · 0 评论 -
有关“双重检查锁定失效”的说明
转自:http://ifeve.com/doublecheckedlocking/原文地址 译者:丁一双重检查锁定(以下称为DCL)已被广泛当做多线程环境下延迟初始化的一种高效手段。遗憾的是,在Java中,如果没有额外的同步,它并不可靠。在其它语言中,如c++,实现DCL,需要依赖于处理器的内存模型、编译器实行的重排序以及编译器与同步库之间的交互。由于c++没有对这些做出明确规定,很难...转载 2018-08-18 16:29:22 · 299 阅读 · 0 评论 -
hashmap知识点
参考自:https://blog.csdn.net/LE_912/article/details/80599869https://www.cnblogs.com/txfsheng/p/9140614.html首先谈一下hashmap的数据结构 hashmap底层使用数组加链表的数据结构,每一个数组空间都会存储一个链表结构,每个链表节点都是一个node对象,里面包含存储的hash,key,va...转载 2018-06-24 10:50:32 · 455 阅读 · 0 评论 -
Java 位操作符
参考自:https://blog.csdn.net/xiaochunyong/article/details/7748713Java 位操作符一共有七个:&、|、^、~、<<、>>、>>>第一个是按位与;第二个是按位或;第三个是按位异或第四个是按位非;第五个是左移位;第六个是右移位;第七个是无符号右移位。Java提供的位运算符有:左移( <&...转载 2018-06-24 10:45:55 · 506 阅读 · 0 评论 -
字节,字符及占用内存大小情况
(一)“字节”的定义字节(Byte)是一种计量单位,表示数据量多少,它是计算机信息技术用于计量存储容量的一种计量单位。(二)“字符”的定义字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。(三)“字节”与“字符”它们完全不是一个位面的概念,所以两者之间没有“区别”这个说法。不同编码里,字符和字节的对应关系不同:原创 2017-04-26 17:15:17 · 27542 阅读 · 0 评论 -
abstract class和interface的区别
转自:http://blog.csdn.net/b271737818/article/details/3950245在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以转载 2017-03-08 21:47:48 · 171 阅读 · 0 评论 -
Map集合的四种遍历方式
转自:http://www.cnblogs.com/blest-future/p/4628871.html 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestMap { 6 public static vo转载 2017-02-18 17:28:15 · 303 阅读 · 0 评论 -
eclipse xml 无提示解决
1、window->preference..->MyEclipse->editors->xml-xml catalog 2、选中 user specified entried 3、选则Add..按钮 URI:请选择本地文件系统上的SPRING_HOME/dist/resources/spring-beans-2.0.xsd key:http://www.springframework.org/原创 2017-02-16 17:12:27 · 494 阅读 · 0 评论 -
jdk1.6和jdk1.7中substring的区别
来自:http://www.programcreek.com/2013/09/the-substring-method-in-jdk-6-and-jdk-7/The substring(int beginIndex, int endIndex) method in JDK 6 and JDK 7 are different. Knowing the difference can help转载 2016-12-14 18:57:58 · 650 阅读 · 0 评论 -
Java虚拟机详解----常用JVM配置参数
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/文章来源:http://www.cnblogs.com/smyhvae/p/4736162.html联系方式:smyhvae@163.com 本文主要内容:Trace跟踪参数堆的分配参数栈的分配参数 零、转载 2016-12-15 19:43:00 · 441 阅读 · 0 评论 -
Comparable和Comparator接口的实现和使用
转自:http://www.cnblogs.com/gnuhpc/archive/2012/12/17/2822251.html作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/1.什么是Comparable接口此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为转载 2016-12-15 20:21:59 · 249 阅读 · 0 评论 -
java虚拟机
学习了一些java虚拟机基本的东西,总结如下。参考文章:Java虚拟机学习:http://blog.csdn.net/java2000_wl/article/details/8015105java GC、新生代、老年代:https://zm12.sm-tc.cn/?src=http%3A%2F%2Fwww.th7.cn%2FProgram%2Fjava%2F201409%2F27627原创 2016-08-10 18:55:39 · 597 阅读 · 0 评论 -
System.getProperty()获取系统属性
转自:http://201111181922.iteye.com/blog/1335869getPropertiespublic static Properties getProperties()确定当前的系统属性。首先,如果有安全管理器,则不带参数直接调用其 checkPropertiesAccess 方法。这可能导致一个安全性异常。将 getProperty(Str转载 2016-12-27 15:28:49 · 1261 阅读 · 0 评论 -
java -version 显示版本和JAVA_HOME配置的不一样的原因以及解决
转自:http://blog.csdn.net/wangpanfengzjut/article/details/10966973 由于系统部署需要,经常需要装多个版本jdk。比如在装了jdk 1.6版本的机子上再安装jdk1.4。 如果要用jdk1.4 ,设置JAVA_HOME指向jdk1.4安装路径就可即可,如果要用jdk1.6也同样设置JAVA_HOM转载 2016-12-23 20:50:53 · 4338 阅读 · 0 评论 -
reactor和proactor模式
转自:http://blog.csdn.net/caiwenfeng_for_23/article/details/8458299首先分享一下,我在网上看到的两篇不错的文章:正是这两篇文章才理解了reactor和proactor模式; Reactor模式,或者叫反应器模式高性能IO设计的Reactor和Proactor模式 首先就第一篇《Reactor模式,转载 2017-08-13 20:05:42 · 383 阅读 · 0 评论 -
NIO学习1(Buffer)
摘自:http://www.cnblogs.com/maydayit/p/4250326.htmlhttp://blog.csdn.net/wanzaixiaoxinjiayou/article/details/43274597Channel 通道Buffer 缓冲区Selector 选择器其中Channel对应以前的流,Buffer不是什么新东西,转载 2017-08-14 22:02:42 · 160 阅读 · 0 评论 -
wireshark安装后无接口
安装wireshark后,读取不到pc机上的网卡信息,定位发现是Winpcap失败是因为NPF(NetGroup Packet FIlter Driver,网络数据包过滤器,Winpcap的核心)没有启动。1)以管理员身份启动cmd,输入sc qc npf,如果提示未QueryServiceConfig成功,则说明npf服务安装。2)输如net start npf,却报出“发生系统错误12原创 2017-11-24 19:21:32 · 4549 阅读 · 0 评论 -
comparable和comparator区别
comparable若一个类实现了该接口,该类便支持排序而comparator是比较器,该类实现该接口,就相当于建立了一个比较器。package com.lwx.lambda;import java.util.Arrays;public class PersonComparable implements Comparable<PersonComparable>{ privat...原创 2018-06-16 14:18:31 · 97 阅读 · 0 评论 -
springmvc请求接收参数的几种方法
参考:https://blog.csdn.net/yaerfeng/article/details/23658391https://blog.csdn.net/bincain1993/article/details/78286327https://blog.csdn.net/zhaohuijiadelu/article/details/54408324很惭愧用了spring这么多年,总是弄混接收参...转载 2018-06-23 16:06:06 · 1972 阅读 · 0 评论