![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA知识点
JAVA知识点
Mason97
这个作者很懒,什么都没留下…
展开
-
Enum
package Others.enumPractice02;/** * @Auther: Mason * @Date: 2021/05/04/10:39 * @Description: */public enum Color { RED("红色", 1), GREEN("绿色", 2); private String name; private int index; private Color(String name, int index) {原创 2021-05-04 10:46:57 · 206 阅读 · 0 评论 -
Integer 不能用 == 进行比较【比较的是地址】
这样就是对的如果用 != 就是错的;找了半天bug,以后注意原创 2021-01-19 17:48:05 · 406 阅读 · 0 评论 -
java中protected访问权限修饰符
我在一个包中创建一个类在另外一个包中:不能访问但是另外包的子类可以访问原创 2020-10-09 00:01:40 · 117 阅读 · 0 评论 -
Callable Future FutureTask
Callable接口只有一个call方法Future接口有get等方法FutureTask类实现了RunnableFuture接口RunnableFuture接口继承了Runnable和Future总之:Runnable可以想象成一个没有参数和返回值的异步方法,Callable与Runnable类似,但是有返回值。 public static void main(String[] args) throws InterruptedException, ExecutionException {原创 2020-09-19 14:53:26 · 106 阅读 · 0 评论 -
将Integer List 转换为int数组、将Integer Set转换为int数组
https://blog.csdn.net/gloriaied/article/details/103970729原创 2020-09-07 08:09:20 · 1514 阅读 · 0 评论 -
java简单日志
info日志:关闭日志:可以设置的显示等级:原创 2020-09-06 15:05:05 · 108 阅读 · 0 评论 -
printStackTrace 方法【打印方法栈轨迹】
public class Demo01 { public void method() { int[] arr = new int[2]; try { int a = arr[5]; } catch (Exception e) { e.printStackTrace(); } } public void method2() { method(); }原创 2020-09-06 14:45:28 · 2219 阅读 · 0 评论 -
finally 遮蔽返回值 甚至吞掉异常
public class Demo01 { public int method(){ int[] arr = new int[2]; try{ int a = arr[5]; }finally { return 999; } } public static void main(String[] args) { Demo01 d = new Demo01()原创 2020-09-06 11:12:41 · 159 阅读 · 0 评论 -
List<Integer> 转为 int[]
// List<Integer> 转 int[]int[] intArray2 = listInteger1.stream() //先把List<Integer>转成Stream<Integer> .mapToInt(Integer::valueOf) //把Stream<Integer>转成IntStream .toArray();原创 2020-09-04 08:37:53 · 584 阅读 · 0 评论 -
final 修饰 成员变量 【修饰基本类型、不可变类、可变类】【内存地址不变而已】
必须在构造函数中初始化,并且以后“不能修改”修饰基本类型、不可变类没啥说的如果修饰可变类,比如int[],只是不能使其指向另外一个对象,而这个对象本身是可以修改的。换句话说,指针(内存地址)不变,但是指向的内容是可以进行修改的public class Person { private final int[] arr; public Person(int[] arr) { this.arr = arr; } public void setArr()原创 2020-08-29 19:22:08 · 309 阅读 · 0 评论 -
一个类的方法可以访问所属类的所有对象的私有数据
一个person类:public class Person implements Cloneable { private String name; public Person(String name) { this.name = name; } public void method(Person p) { p.name = "haha"; } public String getName() { retur原创 2020-08-29 19:18:05 · 671 阅读 · 0 评论 -
clone方法
clone会创建一个新的对象去引用,而不是共享一块内存/** * @Auther: Mason * @Date: 2020/08/29/18:00 * @Description: */public class Person implements Cloneable { String name; public Person(String name) { this.name = name; } public static void main(St原创 2020-08-29 18:05:49 · 197 阅读 · 0 评论 -
java发送http请求
代码例子:String url = "xxxxx";CloseableHttpClient httpClient = HttpClients.createDefault(); // httpclientHttpPost httpPost = new HttpPost(url); // 创建httpPost对象,传入url// 在post中增加请求头httpPost.addHeader("Authorization", "xxxxxxxxx");httpPost.addHeader("Con.原创 2020-07-02 15:24:00 · 198 阅读 · 0 评论 -
LinkedHashMap插入相同key的顺序问题
可以发现,相同的key,会覆盖先前的key:value。顺序的话,在原来的位置进行覆盖。原创 2020-06-18 08:55:15 · 5209 阅读 · 0 评论 -
StringUtils类 isEmpty isNotEmpty isBlank isNotBlank
org\apache\commons\lang3\StringUtils.classisEmpty方法isNotEmpty方法isBlank方法isNotBlank方法原创 2020-06-05 15:12:04 · 116 阅读 · 0 评论 -
一个枚举类的例子 enum
public enum MyEnum { first(500, "10500"), second(500, "105440"); private int errorCode; private String errorMsg; MyEnum(int errorCode, String errorMsg) { this.errorCode = errorCode; this.errorMsg = errorMsg; }}原创 2020-06-05 14:53:01 · 147 阅读 · 0 评论 -
注解:@Documented @Retention @Target
项目中发现自定义了一个注解:自己定义了一个注解。这个新定义的注解有三个注解:@Target用于设定注解使用范围/作用目标。ElementType是一个枚举类。@Retention注解的保留位置RetentionPolicy.SOURCE:这种类型的Annotations只在源代码级别保留,编译时就会被忽略,在class字节码文件中不包含。RetentionPolicy.CLASS:这种类型的Annotations编译时被保留,默认的保留策略,在class文件中存在,但JVM将会忽略,原创 2020-06-05 13:36:23 · 469 阅读 · 0 评论 -
ClassLoader 类加载问题 双亲委派
http://blog.itpub.net/31561269/viewspace-2222522/JVM 中内置了三个重要的 ClassLoaderBootstrapClassLoaderExtensionClassLoaderAppClassLoaderBootstrapClassLoader负责加载 JVM 运行时核心类,这些类位于 JAVA_HOME/lib/rt.jar 文件中,我们常用内置库 java.xxx.* 都在里面,比如 java.util.、java.io.、jav.原创 2020-05-21 00:54:24 · 128 阅读 · 0 评论 -
线程池的【创建】和【种类】
https://blog.csdn.net/qq_33453910/article/details/81413285https://www.cnblogs.com/zhaoyan001/p/7049627.html类和接口的组织结构:java里面的线程池的顶级接口是ExecutorExecutor并不是一个线程池,而只是一个执行线程的工具,而真正的线程池是ExecutorService。使用工厂类Executors来创建ExecutorServiceExecutors中的几个个静.原创 2020-05-20 23:12:45 · 127 阅读 · 0 评论 -
手写一个死锁
public class MyDeadLock { public static void main(String[] args) { String a = "a"; String b = "b"; Resources resources1 = new Resources(a, b); Resources resources2 = new Resources(b, a); new Thread(resources1).st原创 2020-05-19 10:54:07 · 157 阅读 · 0 评论 -
java 转义字符
例子1输出:啥也没有。原因:参考链接所以正确的做法应该是:就能正确分割了。例子二:这样能够正确分隔。原创 2020-05-14 22:35:53 · 81 阅读 · 0 评论 -
String类中的replace方法
并不是在原始字符串上改变,而是创建了一个新的对象,并做替换。如下的例子,发现原始字符串并没有改变。原创 2020-05-14 19:50:46 · 1074 阅读 · 0 评论 -
Java中Scanner.nextLine() Scanner.nextInt()
这两个函数的处理机制不同nextInt()函数在缓冲区中遇到“空格”、“回车符”等空白字符时会将空白字符前的数据读取走,但空白字符不会被处理掉nextLine()函数是在缓冲区中读取一行数据,这行数据以“回车符”为结束标志,nextLine()会把包括回车符在内的数据提走有时在使用nextInt()后使用nextLine()遇到“看上去提取不到数据”的情况。nextInt()后的nextLine()函数并非读取不到数据,因为nextInt()将“回车符”留在了缓冲区,nextLine()读取时遇到的原创 2020-05-14 12:32:27 · 360 阅读 · 0 评论 -
java多线程总结
并发:交替执行。一个人吃两个馒头并行:同时执行。两个人吃两个馒头所有应用程序都需要进到内存中执行。线程是一个进程的执行单元。线程是一条应用程序到CPU的执行路径。线程调度:分时调度:平均分配时间抢占式调度:优先级高的先使用CPU,相同优先级的话,随机选择一个。【Java使用的是抢占式调度。】Java主线程:执行main方法的线程创建多线程的第一种方法:创建Thread类的子类实现步骤:创建一个Thread类的子类重写run方法,设置线程任务创建对象调用Thread类的sta原创 2020-05-10 22:09:50 · 164 阅读 · 0 评论 -
lombok 的 maven 依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> &...原创 2020-04-23 19:43:37 · 13047 阅读 · 1 评论 -
java日志相关知识【市面上的日志框架】【如何让系统中所有的日志都统一到slf4j】
https://www.cnblogs.com/hanszhao/p/9754419.htmlslf4j是java的一个日志门面,实现了日志框架一些通用的api,log4j和logback是具体的日志框架。他们可以单独的使用,也可以绑定slf4j一起使用。...原创 2020-04-23 18:41:17 · 174 阅读 · 0 评论 -
Serializable接口 序列化 反序列化
源码:啥也没有public interface Serializable {}Serializable是啥一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化。什么是序列化与反序列化?序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。把对象转换为...原创 2020-04-11 22:05:00 · 293 阅读 · 0 评论 -
JAVA SE
这里写自定义目录标题一、准备工作java的历史版本jdk、jre、jvmIDE编译运行的过程IDEA的基本配置IDEA的快捷键java编码规范二、基本程序结构三种注释常量字面值常量自定义常量数据类型类型转换:默认和强制转换命名方式运算符ASCII表复制运算符三元运算符Scanner的用法switch语句do while 循环语句break 和 continue三、方法方法、方法重载四、数组数组的定...原创 2020-03-14 13:13:32 · 200 阅读 · 0 评论 -
方法重写和方法重载的关系
方法重写和方法重载的关系原创 2020-03-11 22:30:27 · 299 阅读 · 1 评论 -
Java中对异常的理解
Throwable类是所有错误或异常的超类。Throwable类有两个子类:Error类 和 Exception类。Error类是错误:正确程序中是不该存在的(默认我们编写的是正确程序,就不用管)Exception类是异常:分为以下两类运行时异常:RuntimeException或者是RuntimeException的子类对象。编译异常:Exception的子类中除了运行时异常剩下的都...原创 2020-02-15 14:12:30 · 166 阅读 · 0 评论 -
Java中变量类型
Java中的三种变量类型成员变量、静态变量、局部变量1 成员变量依赖具体的对象2 静态变量不依赖于特定的实例,而是被所有实例所共享3 局部变量的作用域和可见性在所在的花括号中...原创 2020-02-13 12:32:54 · 108 阅读 · 0 评论 -
Java程序初始化顺序
从前到后的顺序为:父类静态变量父类静态代码块子类静态变量子类静态代码块父类非静态变量父类非静态代码块父类构造函数子类非静态变量子类非静态代码块子类构造函数...原创 2020-02-13 11:56:11 · 90 阅读 · 0 评论