java基础
LZHHuo
此人很勤,什么都有写
展开
-
IDEA 的 LeetCode 刷题插件 leetcode editor
1、安装2、配置(登录)若需改动模板要把这里打勾✔3、使用双击题目4、提交代码5、完成提交原创 2020-04-07 01:05:22 · 14978 阅读 · 0 评论 -
Review学生作业管理系统
让后台立即响应前端,前端不等待处理过程描述:学生作业管理系统里面有一个邮件提醒的功能,如果不加以处理前端就会一直等待返回结果不会弹出发送成功的提示,直到邮件已经发送出去。1、使用try{}finally{}(会快一点)try{ return ApiResult.success("发送成功");}finally{ //发送邮件代码...}使用try{}finally{}语句,让tr...原创 2020-03-21 14:48:31 · 569 阅读 · 0 评论 -
三个线程交替打印ABC(Condition实现精确通知)
三个线程交替打印ABC:package pc;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class C { public static void...原创 2020-02-28 01:09:40 · 1569 阅读 · 0 评论 -
Java实现按名称、日期、大小对文件进行排序
按文件名称排序:public static void orderByName(String filePath) { File file = new File(filePath); File[] files = file.listFiles(); List<File> fileList = Arrays.asList(files); ...原创 2020-02-22 16:27:09 · 1114 阅读 · 0 评论 -
jvm监控工具(排查内存溢出和内存泄漏)
jmap查看内存信息或dump下内存详情其他的排查工具:jconsole java监视和管理控制台jconsole其实已经包含以下的所有指令,不过如果在没界面的Linux系统上就要用到下面的指令jps查看当前运行的java程序jstat -gcutil pid 间隔时间(毫秒)单位:内存的百分比s0:survivor0区,s1:survivor1区, E:eden区 ,O:...原创 2020-02-14 23:52:22 · 2121 阅读 · 0 评论 -
Arrays.sort和Collection.sort分别使用什么排序来实现的
Arrays.sort是插入排序+快速排序+归并排序具不具备结构是指连续性好不好Collection.sort是合并排序+Timesortpublic static <T> void sort(T[] a, Comparator<? super T> c) { if (c == null) { sort(a); } else { ...原创 2020-02-05 23:15:11 · 1492 阅读 · 0 评论 -
hashmap的各种问题及答案
为什么初始容量要2指数次幂?HashMap<String, String> hashMap = new HashMap<>(13);roundUpToPowerOf2会把13强转为离13最近的16。threshold是扩容阈值16*0.75 = 12定位key放在哪里时:采用位运算(触发多次扩容时效率优势很大)h & (length -1) 要想定...原创 2020-02-05 14:52:41 · 418 阅读 · 0 评论 -
Volatile缓存可见性实现原理(JMM数据原子操作具体步骤)
Java内存模型:JMM数据原子操作:具体操作步骤:线程1:先把initFlag变量read读取出来,再load载入工作内存,use使用线程1执行代码!initFlag线程2:先把initFlag变量read读取出来,再load载入工作内存,use使用线程2执行代码initFlag=true,再assign重新赋值,store存储并写入主内存,write写入到主内存中的变量。线程1...原创 2020-02-02 23:26:36 · 845 阅读 · 1 评论 -
对象进入堆内存时,堆内存具体的分配和回收步骤
堆内存具体的分配和回收步骤:(1)进入Eden区, 区内存不够的时候就会触发MinorGC,对新生代区进行一次垃圾回收。(2)MinorGC会清除Eden区的游离对象(没有被GC Roots标记的对象),非垃圾对象(被GC Roots标记的对象)会被复制到SurvivorFrom区,这些对象的分代年龄为1(经历了1次GC)。(3)Eden内存不够又触发了MinorGC,MinorGC又会和...原创 2020-02-01 15:42:44 · 748 阅读 · 1 评论 -
Arrays常见用法
Arrays常见用法转载 2020-01-21 15:16:00 · 180 阅读 · 0 评论 -
快速排序的实现及优化
1、分割操作单向扫描public class QuickSort { public int partition(int[] a, int left, int right) { int temp, pivot;//pivot存放主元 int i, j; pivot = a[right]; i = left; f...原创 2020-01-19 23:56:30 · 198 阅读 · 0 评论 -
为什么是get()和set()方法?
面向对象的三大特性之一:封装封装:将事物封装成一个类,减少耦合,隐藏细节。保留特定的接口与外界联系,当接口内部发生改变时,不会影响外部调用方。案例:package chapter02;public class FengZhuang { public static void main(String[] args) { Student student = new St...原创 2020-01-18 13:42:49 · 770 阅读 · 0 评论 -
String类12个常用的方法
https://blog.csdn.net/qq_25406669/article/details/79021911转载 2020-01-17 15:08:56 · 161 阅读 · 0 评论 -
堆的特点
1、堆的定义及分类NO1、NO2是大顶堆NO3是小顶堆NO4不是堆2、堆的存储结构【数组】原创 2020-01-16 22:54:50 · 3937 阅读 · 0 评论 -
Java中访问修饰符public、private、protect、default范围
public:Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不 仅可以跨类访问,而且允许跨包(package)访问。private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以 及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。protect: 介于public 和 private 之间的一种访问...原创 2020-01-14 12:20:17 · 394 阅读 · 0 评论 -
java.lang.Math
1,Math类概述类包含用于执行基本数学运算的方法Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。Math所有类都是静态的。可以直接类名。调用。2,成员方法public static int abs(int a) //取绝对值public static double ceil(do...原创 2020-01-13 15:29:19 · 241 阅读 · 0 评论 -
各种排序原理
冒泡排序:冒泡排序(Bubble Sort)是一种简单的排序算法,它通过依次比较两个相邻的的元素,看两个元素是否满足大小关系要求,如果不满足则交换两个元素。每一次冒泡会让至少一个元素移动到它应该在的位置上,这样n次冒泡就完成了n个数据的排序工作。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。插入排序:插入排序(Insertion Sort)的原理是:将数组中的数据分为...原创 2020-01-13 01:29:13 · 1805 阅读 · 0 评论 -
链表的特点
1、高效的插入和删除2、低效的随机访问LinkedList和ArrayList的比较1:ArrayList的实现基于数组,LinkedList的实现基于双向链表2:对于随机访问,ArrayList优于LinkedList,ArrayList可以根据下标对元素进行随机访问。而LinkedList的每一个元素都依靠地址指针和它后一个元素连接在一起,在这种情况下,查找某个元素只能从链表头开始查询...原创 2020-01-10 23:40:58 · 13316 阅读 · 0 评论 -
数组的特点
1、高效的随机访问2、低效的插入和删除数组插入的优化方案:如果数组中的数据是有序的,我们在某个位置插入一个新的元素时,就必须按照刚才的方法搬移 k之后的数据。但是,如果数组中存储的数据并没有任何规律,数组只是被当作一个存储数据的集合。在这种情况下,如果要将某个数组插入到第 k个位置,为了避免大规模的数据搬移,我们还有一个简单的办法就是,直接将第 k 位的数据搬移到数组元素的最后,把新的元素直...原创 2020-01-10 23:17:32 · 302 阅读 · 0 评论 -
Java中ArrayList最大容量为什么是Integer.MAX_VALUE-8?
我们打开ArrayList的源码可以看到作者是有解析的:/***要分配的数组的最大大小。*一些vm在数组中保留一些头字。*尝试分配较大的数组可能会导致*OutOfMemory错误:请求的数组大小超过了虚拟机限制*/...原创 2020-01-10 11:03:15 · 3063 阅读 · 4 评论 -
从使用“List list = new ArrayList()”而不是“ArrayList list = new ArrayList()”看面向接口编程
1、问题就在于List有多个实现类,如 LinkedList或者Vector等等,现在你用的是ArrayList,也许哪一天你需要换成其它的实现类呢?,这时你只要改变这一行就行了:List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。假设你开始用 ArrayList alist = new ArrayList(), 这下你有的改了,特别是如果你使用...原创 2019-08-01 23:34:54 · 207 阅读 · 0 评论 -
在Java语言中if()语句后跟个continue是什么意思?
continue语句用于循环语句中,作用是不执行循环体剩余部分,直接进行下次循环。常见的就是与if连用。比如:public static void main(String[] args) { for (int i = 0; i <10; i++) { if (i % 2 == 0) { continue; ...原创 2019-07-30 23:26:20 · 11536 阅读 · 0 评论 -
递归 累加和累乘
//递归累加public class Demo01DiGui { public static void main(String[] args) { int num = 5; int sum = getSum(num); System.out.println(sum); } public static int getSum(...原创 2019-07-22 09:51:52 · 1008 阅读 · 1 评论 -
异常:catch下的return;
import java.io.FileNotFoundException;public class TryCatchDemo { public static void main(String[] args) { try { read("b.txt"); } catch (FileNotFoundException e) { ...原创 2019-07-19 11:22:09 · 266 阅读 · 1 评论 -
idea debug的使用
1、点击行号空白区域设置断点2、开始debug3、第一个按钮是下一步(F8),第二个按钮是进入方法(F7)4、遇到输入时,转到Console界面完成输入5、遇到方法时,按F7跳入方法里6、按F9直接执行下去,跳出debug...原创 2019-07-18 11:20:52 · 74 阅读 · 0 评论