
java基础
SomeOtherTime
这个作者很懒,什么都没留下…
展开
-
java编译运行测试
则会在f:\test\out下生成和zy1.dto2.Demo1对应的包路径结构F:\test\out\zy1\dto2\Demo1.class。会默认在F:\test\zy\dto\目录下生成Demo1.class,如果指定编译路径f:\test\out。运行是似乎需要在classpath下,路径和包(package)严格匹配才能执行。结论:编译是需要指定输出路径-d才会生成与包(package)对应的路径。此时似乎只能在F:\test\out的classpath路径下运行。在F:\test运行。原创 2023-12-21 17:07:20 · 484 阅读 · 0 评论 -
类加载器对字符串加锁的源码
每个字符串对应一个加锁对象。原创 2023-02-16 17:35:44 · 117 阅读 · 0 评论 -
javap反编译枚举类测试
这里枚举值INSPECTION 添加了枚举值方法。编译后多产生了一个枚举的内部子类。INSPECTION 是该字类的示例。枚举是一种语法糖,编译到字节码后是一个类继承 java.lang.Enum,而枚举值是静态final成员变量。原创 2023-02-15 15:00:31 · 253 阅读 · 0 评论 -
PrintWriter类是对其他输出类的增强(待完善)
该构造函数看出,字节流被字符流增强,字符流被缓存流增强,缓存流被PrintWriter增强,很好的体现了包装设计模式和解耦的思想。原创 2022-12-28 17:19:18 · 107 阅读 · 0 评论 -
java NIO相关文章集合
转载转载 2022-07-07 17:45:44 · 106 阅读 · 0 评论 -
内部类获得外部类字节码对象
普通内部类和匿名内部类获得外部类字节码对象方式不一样。获得父类的字节码对象方法一样。 普通内部类:getDeclaringClass() 匿名内部类:getEnclosingClass() WaterRiverBox waterRiverBox = new WaterRiverBox() {{ setType(1); }}; WaterRiverBox.Test test = new WaterRiverBox.Test(); Class cur1=waterRive原创 2021-09-24 15:55:44 · 94 阅读 · 0 评论 -
java.util.Timer源码阅读
java.util.Timer是比较底层的一个java定时任务执行类,其底层也是基于java.util.Thread Timer是一个总的类,里面成员变量包含了java.util.TaskQueue,java.util.TimerThread 其中TaskQueue封装了一个TimerTask的数组(优先队列)。TimerTask对应每个任务。其数组为优先队列,先执行的任务放在前面。 java.util.Timer#Timer(java.lang.String)构造函数和成员变量 /**原创 2021-08-13 16:32:15 · 232 阅读 · 0 评论 -
java中的路径
在命令行运行java时,主要有2种路径。 一种是工作路径,也就是运行java XXX.class命令时所在的路径。此路径可通过 System.getProperty("user.dir") 来获取。 在java.io.File类中的相对路径就是基于此路径,源码: java.io.File#getAbsolutePath java.io.WinNTFileSystem#resolve(java.io.File) @Override public String resolve(Fil原创 2021-07-02 16:52:20 · 8112 阅读 · 1 评论 -
BufferedInputStream的作用
先从InputStream说起,InputStream.read()每次读取一位,所以当读取一个完整的二进制文件需要多次系统调用(?),所以速度慢。InputStream.read(byte[])方法ke'yi原创 2021-06-16 11:49:34 · 873 阅读 · 0 评论 -
java线程池记录
参考:https://blog.youkuaiyun.com/weixin_40304387/article/details/80508236 new Thread开启线程的弊端如下: a. 每次new Thread新建对象性能差。 b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。 c. 缺乏更多功能,如定时执行、定期执行、线程中断。 相比new Thread,Java提供的四种线程池的好处在于: a. 重用存在的线程,减少对象创建、消亡的开销,性能佳。 b. 可有原创 2020-10-29 16:59:32 · 133 阅读 · 0 评论 -
java调用cmd命令或运行其他进程方法
api: 此方法可调用系统的cmd(windos)命令或bash(linux)命令,或者运行其他进程。参数cmdarray[]是某条命令的拼接,envp是设置临时环境变量,dir是工作目录。 运行其他进程: public static void main(String[] args) { Process proc; try { proc = Runtime.getRuntime().exec(new String[]{"java","T原创 2020-08-26 17:39:46 · 964 阅读 · 0 评论 -
JDK8 stream操作记录
JDK8 stream一些操作是将函数作为对象传入。 Stream一些方法如map,接受以函数的形式传参:1.传入Lambda函数形式,类似只有一个接口的匿名内部类:(param1,param2)->{ 函数体},2.传入类似System.out::println形式其中println是静态方法,3.传入类似String::toUpperCase形式其中把遍历的是字符串,调用他们方法内的对...原创 2020-04-30 14:38:54 · 159 阅读 · 0 评论 -
java中Date Calendar SimpleDateFormat常用操作
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Main { public static void main(String[] args) { Date date =...原创 2020-04-22 16:41:51 · 136 阅读 · 0 评论 -
java IO好文链接
10分钟看懂, Java NIO 底层原理 netty深入理解系列-Netty零拷贝的实现原理 Reactor模式原创 2019-08-23 14:25:50 · 128 阅读 · 0 评论 -
(转)Java I/O底层是如何工作的?
本博文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解Java I/O操作是在机器层面如何进行映射,以及应用运行时硬件都做了什么。假定你熟悉基本的I/O操作,比如通过Java I/O API读写文件。这些内容不在本文的讨论范围。 目录 缓存处理和内核vs用户空间 虚拟内存 内存分页 面向文件、块的I/O 文件...转载 2019-08-23 12:05:05 · 92 阅读 · 0 评论 -
(转)Java5泛型的用法,T.class的获取和为擦拭法站台
http://www.blogjava.net/calvin/archive/2009/12/10/43830.html 作者:江南白衣 Java 5的泛型语法已经有太多书讲了,这里不再打字贴书。GP一定有用,不然Java和C#不会约好了似的同时开始支持GP。但大家也清楚,GP和Ruby式的动态OO语言属于不同的意识形态,如果是一人一票,我想大部分的平民程序员更热衷动态OO语言的平白自然。但...转载 2019-06-22 11:50:26 · 376 阅读 · 0 评论 -
System.out,System.in能重定向到文件
System.setOut(new PrintStream(new FileOutputStream("systemOut.txt"))); System.setIn(new FileInputStream("C:/Users/Administrator/Desktop/b.txt"));原创 2019-01-20 02:10:04 · 325 阅读 · 0 评论