Java基础
xiyuanda
这个作者很懒,什么都没留下…
展开
-
通过http请求获取File
通过http请求获取File原创 2022-11-08 17:22:45 · 1175 阅读 · 0 评论 -
JAVA中的阻塞队列和非阻塞队列
JAVA中的阻塞队列和非阻塞队列原创 2022-10-08 10:45:03 · 314 阅读 · 0 评论 -
深拷贝和浅拷贝
一、数据类型数据分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和对象数据类型。基本数据类型的特点:直接存储在栈(stack)中的数据引用数据类型的特点:存储的是该对象在栈中引用,真实的数据存放在堆内存里引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。二、浅拷贝与深拷贝深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。原创 2022-02-22 15:57:59 · 70 阅读 · 0 评论 -
字符的大小写转换(随记)
Java中char类型字母大小写转换大写字母+32后转为小写字母 小写字母-32后转为大写字母例子 public static void main(String[] args) { char a = 'a'; a = (char) (a-32); System.out.println(a); //结果是 A }public static void main(String[] args) { c原创 2022-02-22 15:13:48 · 282 阅读 · 0 评论 -
zookeeper报错 JAVA_HOME is not set
很多开发者安装zookeeper的时候,应该会发现到这么一个问题:JAVA_HOME is not set那么这个是什么意思呢?就是说你的JAVA_HOME 变量没有设定为什么会提示这个呢?其实zookeeper在启动服务端的时候会基于java环境启动,所以在启动的时候会检测 jdk 是否安装而在我们开发者的入门过程中,都会设定一下 %JAVA_HOME%的系统变量。在 zkservice启动的时候,会找%JAVA_HOME%\bin\java.jar 进行java基础环境的...原创 2022-02-14 17:54:16 · 3168 阅读 · 0 评论 -
关于intern方法的理解
首先明确一下两种String的声明String a = "ab"; 这种赋值都是直接在字符串常量池生成一个字符串对象的。String a = new String("ab")在用new生成字符串对象的时候,只会在堆中生成字符串对象。而不会在字符串常量池生成对象,也没有引用。intern在JDK中的不同:1、在jdk1.6中,intern()方法是先查找字符串常量池是否含有当前字符串,如果没有,那么就在字符串常量池中创建 该字符串,并且返回该字符串在字符串常量池中的引用。 2、在jdk1.7原创 2022-01-19 13:00:33 · 466 阅读 · 0 评论 -
Java中定义一个不做事而且没有参数的构造方法有什么用
Java 程序在执⾏⼦类的构造⽅法之前,如果没有⽤ super() 来调⽤⽗类特定的构造⽅法,则会调⽤⽗类中“没有参数的构造⽅法”。因此,如果⽗类中只定义了有参数的构造⽅法,⽽在⼦类的构造⽅法中⼜没有⽤ super() 来调⽤⽗类中特定的构造 ⽅法,则编译时将发⽣错误,因为 Java 程序在⽗类中找不到没有参数的构造⽅法可供执⾏。解决办法是:在⽗类 ⾥加上⼀个不做事且没有参数的构造⽅法。父类:public class F { public int x = 0; p原创 2022-01-19 12:02:39 · 469 阅读 · 0 评论 -
java异常==>try catch finally执行关系
有finally的时候,不论try有没有捕捉到异常,finally都会执行public class Main { public static void main(String[] args) { int a = new Main().test(); System.out.println(a); } int test(){ int a = 3; try { Class<?> c原创 2022-01-16 18:06:38 · 205 阅读 · 0 评论 -
lambda表达式字符串长度从大到小排序
public class Main { public static void main(String[] args) { String[] strings = new String[]{"123","avbs","asdasd","74365222222"}; /** * strings为要排列的字符串组 * o1 o2是比较的两个参数,类型明确的时候可以不注明类型 * */ .原创 2022-01-16 11:59:43 · 754 阅读 · 0 评论 -
Comparator接口自定义带条件的Arrays.sort(字符串长度从大到小排序)
import java.util.Arrays;import java.util.Comparator;public class Main { public static void main(String[] args) { String[] strings = new String[]{"123","avbs","asdasd","74365222222"}; StringRuler stringRuler = new StringRuler(); .原创 2022-01-16 11:54:23 · 476 阅读 · 0 评论 -
java中int与char的互相转换
int类型是一个32位的数据类型,因为其位有符号数,所以,其取值范围为:-2^31 至 2^31 - 1。而char为16位的数据,为无符号数,其范围为:0 至 2 ^ 16 -1,即 0 - 65535。而无论是什么字符,在计算机中,其实也是以数字(本质为一个二进制数)的形式存储的,因此,在java中,无论是一个字符,还是一个字符型变量,实则也是一个数字,所以,可以直接将一个(不超过char的范围的)数字赋值给一个char变量,即可输出其结果:char c1 = 97;System.out.pri原创 2021-12-22 10:57:09 · 2294 阅读 · 0 评论 -
String的两种创建方式在内存中的区别
两种创建方式String str = "hello"String str = new String("hello")测试结果public class Test { public static void main(String[] args) { String str = "Hello"; } }上面的例子,Test.java文件编译后得到class文件,里面包含了类的信息,其中有一块叫做常量池的区域,class文件常量池主要存储的就包原创 2021-12-18 14:44:06 · 255 阅读 · 0 评论 -
Java中关于进程线程那些事
进程线程进程概念:进程就是正在运行的程序,它会占用对应的内存区域,由CPU进行执行与计算。进程特点:独立性:进程是系统中独立存在的实体,它可以拥有自己独立的资源,每个进程都拥有自己私有的地址空间,在没有经过进程本身允许的情况下,一个用户进程不可以直接访问其他进程的地址空间 动态性:进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合,程序加入了时间的概念以后,称为进程,具有自己的生命周期和各种不同的状态,这些概念都是程序所不具备的. 并发性:多个进程可.原创 2021-12-13 20:51:43 · 353 阅读 · 0 评论 -
String、StringBuffer、StringBuilder三者的区别
1、String——字符串常量String在Java中属于对象,Java提供了String类来创建和操作字符串。需要注意的是,String类型的字符串创建以后是什么就一直是什么,不能被改变。创建String的两种方式:String s1 = "hello";String s2 = new String("world");当你已经创建好了 "hello" 和 "world" 的时候,你想要令s3=s1+s2时,你需要在字符串常量池中重新开辟空间来存储s3的值 "hellow...原创 2021-12-13 18:37:51 · 1184 阅读 · 0 评论 -
Java中& 和 && 的区别?
今天在看别人的代码的时候偶然间看见了自己很少用的&运算符,回忆整理一下&和&&的区别Java 中 && 和 & 都是表示与的逻辑运算符,都表示逻辑运输符 and,当两边的表达式都为 true 的时候,整个运算 结果才为 true,否则为 false。 &&:有短路功能,当第⼀个表达式的值为 false 的时候,则不再计算第⼆个表达式。&:不管第⼀个表达式结果是否为 true,第⼆个都会执⾏...原创 2021-12-11 19:05:08 · 2645 阅读 · 0 评论 -
JAVA递归生成树形菜单
首先,编写数据模型Menu。每条菜单有自己的id、父节点parentId、菜单名称text、菜单还拥有次级菜单children。 public class Menu { private String id; private String parentId; private String text; private List<Menu> children; public Menu(String id,String parentId原创 2021-12-03 21:22:52 · 174 阅读 · 0 评论 -
Java中的128陷阱和自动拆装箱
public static void main(String[] args) { Integer num1 = 100; Integer num2 = 100; System.out.println(num1 == num2); //true Integer num3 = 128; Integer num4 = 128; System.out.println(num3 == num4); //false}以上代码中,Integer类返回的.原创 2021-11-30 17:22:29 · 171 阅读 · 0 评论 -
IDEA的debug功能
IDEA Debug调试debug方式启动(Shift + F9)正常运行右边的蜘蛛图标断点:打在程序可执行的行 基本用 法& 快捷键 f8 单步调试,一行一行运行 f9 跳过当前断点,直到遇到下一个断点或者运行结束 f7 进入方法内部 controller =》 service 调试源码追踪方法调用 控制台查看变量 计算表达式: alt + f8 去除所有断点 在非断点所在行使用:ctrl+shift+f8 条件断点 光标放在断点所在行,原创 2021-11-30 17:09:40 · 106 阅读 · 0 评论 -
===反射===
1、反射是什么反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。 反射的核心是 JVM 在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。重点:是运行时而不是编译时 Java 反射主要提供以下功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法); 在原创 2021-11-30 16:58:37 · 151 阅读 · 0 评论