![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 54
梦里Coding
bigData
展开
-
解决Mac下载官网JDK速度过慢的问题
换了新电脑,用mac完去官网下载jdk,发现速度过于慢,要等非常久,为了解决这个问题,提供一个方法:将mac的网络换成手机热点,接着再去官网下载jdk1.8,速度快的飞起。原创 2023-05-20 11:26:15 · 1999 阅读 · 1 评论 -
HttpUtil工具类
http工具类原创 2023-03-08 22:04:14 · 118 阅读 · 0 评论 -
JAVA接口继承接口
JAVA里面接口可以继承接口吗?答案是可以的。但是继承的话不是使用implements关键字,而是使用extends关键字。下面这么写代码是会报错的://这个代码肯定是会报错的,因为子接口继承父接口应该使用extendsinterface Animal{// 写一个抽象方法 void test();}interface Cat implements Animal{ }应该按照下面这么写:interface Animal{// 写一个抽象方法 void test();}i原创 2022-04-11 20:10:36 · 6603 阅读 · 0 评论 -
Java.lang.StackOverFlow(栈内存溢出)
今天在写快排的时候,每次一提交代码,就出现Java.lang.StackOverFlow的报错,对于这个报错,有点理解,但是并不完全理解透,因此对其进行深入的研究和学习,记录这个报错。下面这是我写的快排代码:class Solution { public int[] sortArray(int[] nums) { quickSort(nums,0,nums.length-1); return nums; } public void quickSor原创 2021-10-09 10:33:30 · 5939 阅读 · 2 评论 -
LeetCode-3. 无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"原创 2021-10-08 22:24:06 · 50 阅读 · 0 评论 -
JAVA transient关键字的用法
介绍JAVA中的transient关键字是一个特殊的关键字,主要是用在序列化的条件下。对于transient 修饰的成员变量,在类的实例对象的序列化处理过程中会被忽略。 因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里进行持久化。序列化Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输。一般地,当我们使用缓存cache(内存空间不够有可能原创 2021-09-13 20:39:21 · 241 阅读 · 0 评论 -
private关键字(如何在别的类中访问private所修饰的变量详解)
如何在别的类中访问private所修饰的变量成员变量和局部变量private关键字成员变量和局部变量成员变量:Java中最小单位是class(类).所以,如果一个变量(属性)定义在类中,那么这个变量(属性)在类中的任意位置可以使用。是类的一部分。局部变量:在方法中或是方法参数列表中的变量就是局部变量。因为这个变量只能在该方法中使用。离开该方法就不存在了。定义的位置上区别:成员变量是定义在方法之外,类之内的。局部变量是定义在方法之内。作用上的区别:成员变量的作用是用于描述一类事物的公共 属性的原创 2021-09-13 17:50:18 · 2704 阅读 · 0 评论 -
JAVA设计模式之单例模式总结
设计模式设计模式饿汉式饿汉-变种懒汉-(非线程安全)懒汉-(线程安全)双重校验锁设计模式设计模式(Design pattern),提供了在软件开发过程中面临的一些问题的最佳解决方案,是Java开发者必修的一门课程。今天我们要讲的是设计模式里的单例模式属于创建型模式。单例模式,顾名思义就是只有一个实例,并且她自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。下面我们来看下有哪几种实现方式吧。饿汉式类加载的时候就创建了实例优点:类加载的时候创建原创 2021-08-26 10:37:13 · 130 阅读 · 0 评论 -
冒泡排序Java实现
冒泡排序的核心思想是通过最近邻的两个元素进行交换,每一趟将一个最大的元素调整到数组的正确位置,直到整个数组完整有序才完毕.import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { //冒泡排序 int[] arr = {1,4,46,64,3,6,76,85,854,345,664,77}; bubble(arr,arr.l原创 2021-08-20 18:58:41 · 65 阅读 · 0 评论 -
快速排序(详细讲解)
如今的面试里面,快速排序成了一项必须要掌握的技能,面试官考快排的概率非常大,不管是从思路上还是实践上,都基本必问.快速排序是一个既高效又不浪费空间的一种排序算法.下面来详细讲解一番快速排序:假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数。选取第一个数6作为基准数。在这个序列中,将所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列:3 1 2 5 4 6 9 7 10 8在初始状态下,数字6在序列的第1位。原创 2021-08-20 12:43:37 · 103688 阅读 · 32 评论 -
归并排序JAVA实现(详解)
归并排序,顾名思义,就是递归和合并的过程.归并排序的时间复杂度是O(nlogn)。该算法采用经典的分治(divide-and-conquer)策略.(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)下面通过图文的方式来对归并进行详解:分阶段比较好理解,将整个长度的数组进行递归,使得得到的每一个数组都是有序的.再来看看治阶段,我们需要将两个已经有序的子序列合并成一个有序序列,比如上图中的最后一次合并,要将[4,5原创 2021-08-20 12:22:08 · 453 阅读 · 0 评论 -
JVM内存模型以及垃圾回收(详细总结)
一个完整的JAVA执行流程如下所示:以.java文件结尾的称作源代码文件,它经过编译器编译之后形成了.class文件(字节码文件),然后由JVM中的类加载器进行加载各个类的字节码文件,加载完毕之后,由JVM执行引擎执行.在整个执行的过程中,JVM会用一段空间来存储期间所用到的数据和相关信息,这段空间一般被称作为Runtime Data Area(运行时数据区),也就是我们常说的JVM内存。这一部门的结构如下所示:方法区:是线程所共享的区域,主要是用于存储类相关的信息,常量和静态变量。当方法区无法满原创 2021-08-17 14:23:25 · 664 阅读 · 0 评论 -
哈希详解(一致性哈希:重点)
哈希什么是哈希什么是哈希表什么是哈希冲突如何解决哈希冲突什么是哈希函数(散列函数)传统哈希存在的问题一致性哈希算法负载均衡什么是哈希哈希(Hash)也称为散列,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,这个输出值就是散列值。什么是哈希表哈希表,也这叫做散列表,是一种将数组和链表结合在一起的数据结构.什么是哈希冲突一般来说,Key,Value键值对的个数远远大于哈希表的长度的时候,求当前键值对的哈希值时,与之前的键值对的值相等,两个键值对存放在同一个数组下标位置,就是哈希冲突.如原创 2021-08-16 16:03:33 · 494 阅读 · 0 评论 -
常用Dos命令
常用的Dos命在此记录一下:E: 盘符切换dir: 列出当前目录以及文件夹md a: 创建a目录(make directory)rd a:删除a目录(remove directory)cd a:进入a目录cd\ :退到根目录del a.txt:删除a.txt文件exit:退出dos命令cls:清屏...原创 2020-10-31 12:23:35 · 273 阅读 · 0 评论 -
Java Swing
Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField; public class SwingLoginExample {原创 2020-10-27 18:04:28 · 96 阅读 · 0 评论 -
判断一个字符串是否为空(null)或者是空字符串(“”)的方法和总结
字符串的比较是一个基础的问题。首先要理解null和" "。null表示这个字符串在堆中没有开辟内存,因此在栈中没有任何这个字符串的引用,如果调用这个字符串会出现空指针异常。判断一个字符串是否为空用==" "空 在堆中分配了内存。判断一个对象是否为空,用的是equals方法。方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null || s.equals(""));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法: if(s == null || s.len原创 2020-10-23 11:41:07 · 3465 阅读 · 0 评论 -
JAVA内存模型
简单记录JVM的各个区域:JVM的内存模型一共可以分成五个部分:堆、方法区、程序计数器、虚拟机栈和本地方法栈。其中在同一个类里面的多个线程所共享的区域是堆和方法区。线程所私有的部分是程序计数器、虚拟机栈和本地方法栈。堆:此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存。Java 堆是垃圾收集器管理的主要区域,因此也被称作GC堆(Garbage Collected Heap)。方法区:它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。程序原创 2020-10-21 16:23:01 · 73 阅读 · 0 评论 -
JAVA多线程总结(完整Demo演示,满满干货,清晰易懂)
趁着周末没去公司上班,背上电脑找了家北大附近的星巴克就开始撸代码。目标是把多线程捋一遍,昨天周六下午在安静的氛围里学了一下午,今天来做一个总结输出。这一篇较为详细的总结了多线程,适合刚入门学JAVA多线程的coder。如果有不妥的地方,欢迎批评指正。1.进程与线程进程是程序的一次执行过程,它需要经历从代码加载,代码执行到执行完毕的一个完整的过程。多线程:多线程是实现并发机制的一种有效手段。进程和线程一样,都是实现并发的一个基本单位。线程是比进程更小的执行单位。所谓的多线程是指一个进程在执行过程中可以产原创 2020-10-18 20:05:16 · 1104 阅读 · 3 评论