
Java
文章平均质量分 52
独上西楼-
纸上得来终觉浅,绝知此事要躬行
展开
-
Java_内部类、匿名内部类、Lambda表达、方法引用(双冒号)
匿名内部类原创 2022-08-23 11:10:44 · 202 阅读 · 0 评论 -
File 读写操作(指定文件目录下的文件)
File 读的介绍参考:https://blog.youkuaiyun.com/whjk20/article/details/114067986写的操作类似。在java工程实际读写操作中,发现如果仅按文件名去读写 (使用Files 类), 只能读取或者写入 java 根目录下的文件。如果需要读取 和写入 指定目录下的文件,则需要使用 BufferedReader 和 BufferedWriter。 具体如下代码所示其中涉及创建文件目录 File.mkdir /mkdirs , 获取文件目录下的文...原创 2021-03-26 20:27:41 · 1256 阅读 · 0 评论 -
Java_InputStream & InputStreamReader &BufferedReader区别
Java 中,读取文件时,往往会涉及到InputStream & InputStreamReader &BufferedReader例如在读取字节流的时候:private String readFromStream(InputStream inputStream) throws IOException { StringBuilder output = new StringBuilder(); if (inputStream != null) { InputStre.原创 2021-02-25 11:42:57 · 216 阅读 · 0 评论 -
Java_File 操作
1.Java File api 文档https://docs.oracle.com/javase/7/docs/api/java/io/File.html2.构造方法public File(String pathname)Creates a new File instance by converting the given pathname string into an abstract pathname. If the given string is the empty string, th原创 2021-02-18 17:11:29 · 253 阅读 · 0 评论 -
Java_String 对象笔记
JDK8 及之后的版本, 字符串常量池是在堆中,尽管通过new 关键字创建的对象会保存在堆中,以例子记录。详细说明在注释中,包含字符串拼接(使用了StringTable)、String 的intern() 方法等。最好是查看反编译之后的字节码指令,可以清晰看到执行的过程(尤其是使用 + 进行字符串拼接的时候,会创建一个StringBuilder 对象,并且不会把结果放入字符串常量池中-字节码指令中没有ldc )public class StringTableTest { public原创 2021-01-05 16:08:58 · 90 阅读 · 0 评论 -
Java 时间笔记
1. 获取当前时间import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;public class DateTimeTest { public static void main(String[] args) { DateTimeTest.getCurrentTime(); } //12-17 14:02:34 public stati原创 2021-01-04 14:47:56 · 66 阅读 · 0 评论 -
Android studio 使用javap命令 反编译 java文件
Android studio 中, 也可以使用javap命令, 反编译java文件, 得到字节码指令1. 添加环境变量 (javac.exe / javap.exe 等所在的路径)javac.exe / javap.exe 等所在的路径一般是你安装studio 的目录下的 \jre\bin把该路径添加到系统变量中路径: 控制面板 -> 系统 -> 高级系统设置 -> 环境变量 -> 系统变量 -> Path 中添加该路径2. javac 编译成字节码...原创 2020-12-18 20:49:12 · 716 阅读 · 1 评论 -
JAVA_逻辑与 & 位与的区别
有些项目中遇到一些返回为boolean类型的方法,有些使用逻辑与||,有些使用位与操作符 |, 因此做个记录。区别在于 逻辑与碰到有true 则会返回,位与 会执行完表达式。1. 逻辑与表达式: boolean value = method1() || method2() || method3 (); 则如果 method1() 返回值为true , method2() 和 method3 则不会再执行; 如果method1() 返回值为false, 则会执行method2(); 如...原创 2020-12-18 18:32:14 · 401 阅读 · 1 评论 -
HashMap get(Key) 返回值的坑
HashMap/Map 使用Object 对象作为Key 时, 如果Key 对应的类,重写了 hashCode() 和 equals 方法,则可能会导致使用 同一个类的不同实例对象, 去从map 中获取 值时,得到的是同一个值。例子如下:1. 先自定义一个类仅有两个成员变量,都是String 类型。 并且重写其hashCode() 和 equals 方法。其中(1). 根据成员变量的值进行hashCode 计算,(2). equals 方法 是比较两个对象的成员变量是否一样,一样原创 2020-12-16 14:37:40 · 6662 阅读 · 0 评论 -
Java_volatile_2
volatile 学习笔记2:定义静态变量x, y 初始都为0,开启两个线程,分别把x,y 的值赋值给局部变量 a,b , 并且同时更新x, y 的值, 并把a, b的值保存起来。会发现两个线程的执行顺序不定,并且同一个线程的两条语句执行的顺序也不一定,导致a,b的值共有4种情况。其原因是CPU 对指令会重排, 解决方法是给x, y 变量用volatile 修饰,则CPU 不会再进行对它操作的指令重排 public static int x = 0, y = 0; pu原创 2020-07-04 21:22:00 · 114 阅读 · 0 评论 -
Java_Volatile 关键字并发编程问题
最近刷到诸葛大神的关于Java 内存模型的视频,讲到volatile关键字可以保证并发编程的可见性,即变量在各线程内存一致性。里面讲到个例子,创建十个线程,每个线程对静态变量进行 1000 次 加一操作, 到最后这个变量值应该是 10 * 1000 = 10000.但是个人在编程的时候,发现实际的值不一定是 10000, 是 <= 10000 的数。加了log调试也没发现问题。有没大神指点一下, 非常感谢!!!下面是代码:public class VolatileTest..原创 2020-06-29 18:51:01 · 129 阅读 · 0 评论 -
Java泛型浅谈(2)
Java 泛型浅谈(2)原创 2017-05-15 16:28:12 · 377 阅读 · 0 评论 -
java中对象句柄
Java 句柄学习原创 2017-05-31 17:52:40 · 1316 阅读 · 0 评论 -
Integer.valueOf(String) 方法之惑
Integer.valueOf(String)转载 2017-05-16 17:33:50 · 1429 阅读 · 0 评论 -
JAVA 泛型浅谈(1)
Java 泛型浅谈 (1)原创 2017-05-12 11:08:10 · 490 阅读 · 0 评论 -
C++ 虚函数、纯虚函数 VS JAVA抽象函数
C++ 虚函数、纯虚函数 VS JAVA抽象函数原创 2016-08-29 15:02:54 · 2271 阅读 · 2 评论 -
interface / abstract 简单应用
interface / abstract 简单应用原创 2016-08-18 14:25:00 · 252 阅读 · 0 评论