Java
java
oneslide
时代是浮躁的,心之所向,日积月累,愈久弥坚,大器晚成。
展开
-
Java 获取日期的星期几和当年第几天
Java 获取日期的星期几和当年第几天原创 2022-11-15 09:34:44 · 368 阅读 · 0 评论 -
复制jar包内目录
复制jar包内目录原创 2022-09-01 11:13:35 · 517 阅读 · 0 评论 -
JSON
GSONGSON打印美化JSON Gson gson = new GsonBuilder().setPrettyPrinting().create(); Map<String,String> map=new HashMap<>(); map.put("name","oneslide"); map.put("age","18"); System.out.println(gson.toJson(map)); 输出:{ "name": "oneslide"翻译 2020-09-19 10:47:23 · 220 阅读 · 0 评论 -
Java字节码
默认构造器public class Main { public static void main(String[] args){ }}使用javac编译后,使用javap进行反汇编:$>javac Main.java$>javap Main.classCompiled from "Main.java"public class Main { public Main(); public static void main(java.lang.String原创 2020-06-25 16:47:59 · 189 阅读 · 0 评论 -
Java文件操作
/** * unzip the zip file * @param sourcePath zip path * @param dstPath destination path,it will be extracted to the subfolder of {@code dstPath}, * subfolder name is zip file name. * @return whether success **/原创 2020-06-04 16:56:37 · 258 阅读 · 0 评论 -
Java判断linux和windows的文件合法路径
不多bb,应该是80%可用。public enum OSType { LINUX, WINDOWS, OTHERS;}然后判断路径是否合法:private static final Pattern linux_path_pattern=Pattern.compile("(/([a-zA-Z0-9][a-zA-Z0-9_\\-]{0,255}/)*([a-zA-Z0-9][a-zA-Z0-9_\\-]{0,255})|/)");private static final Pa原创 2020-06-04 14:43:59 · 3192 阅读 · 1 评论 -
递归删除文件
递归删除文件,使用FileVisitor其中每个方法返回的状态决定下一步该怎么做,比如终止,继续,跳过等。public static boolean deleteRecursively(String pathStr){ if (!Files.exists(Paths.get(pathStr))) return false; Path path= Paths.get(pathStr); try { Files.walkFileTree原创 2020-05-29 23:06:29 · 333 阅读 · 0 评论 -
JDK 线程安全集合源码笔记
阻塞队列LinkedBlockingQueue当队列为空,消费者线程被阻塞;当队列装满,生产者线程被阻塞。这是阻塞队列的基本特点。LinkedBlockingQueue对锁进行了优化,就是put锁和take锁分离。另外,线程协作通知方式,不都是生产者直接唤醒全部消费者,而是生产者通知一个消费者线程,消费者线程发现还有可取的元素,会通知其他消费者线程。称为Cascading notificat...原创 2020-05-06 10:30:31 · 188 阅读 · 0 评论 -
Java API
Java四种引用几种引用之间的区别Java有四种引用:引用类型描述Soft Reference只要JVM还有空间就不会回收Weak Reference即使JVM有空间,也会回收。但是需要调用System.gc()Phantom Reference总是回收Soft Reference通常被用来对象池,如果一开始不知道对象池应该设多大,但是希望对...原创 2020-04-23 21:47:03 · 203 阅读 · 0 评论 -
Java异常处理
import java.util.LinkedHashMap;import java.util.LinkedList;import java.util.Map;import java.util.Scanner;public class Main { public static void main(String[] args) { System.out.prin...原创 2019-03-20 18:49:34 · 141 阅读 · 0 评论 -
垃圾收集器-CMS和G1行为对比
翻译自:https://www.oracle.com/technetwork/tutorials/tutorials-1876574.htmlCMSCMS是收集老年代的垃圾收集器,通常和其他年轻代垃圾收集器组合内存分配初始化:这个结构可以说是相当熟悉了,应用运行一段时间:Yong GC:部分年轻代晋升老年代,无法晋升的被发配到Survivor区。年老代占用率过高,引发Ful...翻译 2019-03-03 14:01:00 · 594 阅读 · 0 评论 -
Java HTTP GET
HTTP GET有两种流行的方式使用HTTP GET在Java中:apache第三方库和Java URLJava URLpublic static void main(String[] args) { try { URL url=new URL(&quot;http://www.baidu.com&quot;); URLConnection u...原创 2019-02-20 16:24:40 · 883 阅读 · 0 评论 -
IO snippet [Note]
BIO区别于NIO,是阻塞式读写,一次一个字节。这区别于操作系统的批量读写,操作系统中读写文件,都是使用一个缓冲区,一个缓冲区由若干文件块组成(64KB或128KB由页框大小决定),Java BIO这种工作方式效率无疑是非常低的。BIO测试代码 public static void main(String[] args) throws FileNotFoundException { ...原创 2019-02-20 09:39:08 · 134 阅读 · 0 评论 -
基础集合类
Preface希望熟练掌握集合类操作,所以希望将网上的资料整合一下。文章会声明为转载,就当个人笔记! 博客参考列表: HHcoco :http://blog.csdn.net/HHcoco/article/details/53117525Code with CommentHashMap Java API website:https://docs.oracle.com/java原创 2018-01-01 12:54:38 · 353 阅读 · 0 评论 -
An Investigation into Automatic Dynamic Memory Management Strategies using Compacting Collection
关于使用整理收集法的自动动态内存管理策略调研本文自一篇关于GC的论文-Daniel JohnFrampton Department of Computer Science Australian National University摘要本论文描述了在Java内存管理工具集(JMTk)中几个整理收集器的设计,实现和性能特征。整理收集器是一类用于多个生产运行时环境的收集器,包括微软CLR...翻译 2019-04-30 21:07:19 · 226 阅读 · 0 评论 -
多线程阻塞式服务器--概念验证
一个线程:package server;import java.io.*;import java.net.Socket;import java.nio.charset.Charset;import java.util.Scanner;/** * @description * 一个ChatChannel代表一个服务器线程,一个线程服务于一个客户端连接,即一个Socket * *...原创 2019-02-19 20:25:13 · 224 阅读 · 0 评论 -
Final & Immutable 对象
Final的具体含义先看一段程序:public class Main { final Set<String> set=new TreeSet<>(); public Main(){ set.add("oneslide"); set.add("icywater"); set.add("hello"); ...翻译 2019-03-27 19:48:29 · 285 阅读 · 0 评论 -
Java Security[Note]
从一个需求来看一个产品某个用户登录之后,你需要控制其能够读取的文件,比如只能读取某个特定文件夹下的文件。把这些关键字提取出来,就可以形成Java的一个配置文件。grant codeBase "file:C:/home/oneslide/"{ permission java.io.FilePermission "/home/oneslide/-","read";}这就是一段话:授...原创 2019-04-14 14:59:46 · 166 阅读 · 0 评论 -
Java Concurrency In Practice[Note]
关于中断Thread interruption is a cooperative mechanism for a thread to signalanother thread that it should, at its convenience and if it feels like it, stop what it is doing and do something else.线程中...原创 2019-04-07 14:32:07 · 96 阅读 · 0 评论 -
I/O流性能测量-缓冲流和非缓冲流
import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class BufferedInputFile { /** * @param String filename * @see BufferReader 秦旭汉 * */...原创 2018-05-22 11:04:41 · 474 阅读 · 0 评论 -
NIO服务器线程模型[note]
ConstantEach thread will take between 320K (32 bit JVM) and 1024K (64 bit JVM) memory for its stack.处理1M的连接需要ITB的内存阻塞式服务器从Socket或File中读取字节流信息,然后通过MessageReader分解成一致连续的信息块阻塞式线程(利用BIO)中一个线程只负责处理...翻译 2019-02-14 20:07:13 · 429 阅读 · 0 评论 -
Lambda表达式
Java 8引入流机制和Lambda表达式之后,两者配合地可谓是天衣无缝,本来想看看Java流库有什么东西,可是全是Lambda表达式,晕死,看来得好好了解一下Lambda了!函数式编程在文献2中,作者由Swing中的ActionListener来引入Lambda的概念。比如:button.addActionListener(new ActionListener() { public...原创 2018-12-18 19:36:23 · 1063 阅读 · 5 评论 -
Tomcat 7+eclispe 运行dynamic web project
Tomcat 7支持Servlet 3.0,一个支持异步和文件上传的新版本。真的希望eclipse和tomcat的开源社区配合好一点,不要总是产生不一致的情况,这样会产生非常糟糕的用户接口。bug新建eclipse时候,如果选择tomcat 7,eclipse默认的Servlet编译目录是’build’,但是Tomcat认为Servlet编译好的目录是webcontent/WEB-INF/class原创 2017-12-28 14:11:34 · 412 阅读 · 0 评论 -
Servlet 3.0文件上传实例
import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.MultipartConfig;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;im原创 2017-12-31 22:28:36 · 253 阅读 · 0 评论 -
JDBC核心对象及概念
java的封装抽象真的是很强大,这也是计算机中最著名的两个概念。 如果了解到JMS,JDBC扮演的角色,你会体会到封装和抽象的强大。秦始皇一统文字,JDBC一统数据库操纵,JMS一统应用消息传递。JDBC角色定位JDBC API为应用程序提供数据库操作的统一接口,对于数据库实现者来说,需要提供JDBC驱动管理器。JDBC驱动管理器也是java类,需要加载。驱动管理器通过jav...原创 2018-01-04 23:45:23 · 558 阅读 · 0 评论 -
多线程摸坑
这只是一个bug package joinMechanism;import java.util.Vector;import java.util.concurrent.TimeUnit;public class JoinMechanism { public static void main(String[] args) { Vector<Thread> vect...原创 2018-11-07 22:31:55 · 196 阅读 · 0 评论 -
JVM小笔记
一本书是不是好书,看一章就可以看出来,作者有探讨的精神,不同设计之间演化的原因清楚。《深入理解JVM》是本好书,我在此仅是做些笔记。传统GC是只分成新生代(Eden)及老年代的,只对传统GC做一些总结。新生代一般对象是短命鬼,采用复制算法。具体参数之类的不加赘述,只是说明概念模型。假如一个方块100MB,那么Eden区有600MB,Survivor区有100MB,整个新生代有800M...原创 2018-10-31 22:01:42 · 193 阅读 · 0 评论 -
Java非完备集合层级
你想把集合类图都画出来吗?NO,我没有这么大的胃口,我只是画出足够让人明白局部层级结构的图。上图:表示规范:每个模块都有一个橘色的牌子,I是接口,A是抽象类,C为普通类绿色线实现,黄色线继承MapQueue...原创 2018-10-26 23:09:08 · 217 阅读 · 0 评论 -
Java线程
本文参考Think in java,好久没接触线程了,温习一下。基本的线程可以继承Runnable,这是一个倒计时的小线程,倒数10,9….3,2,1import java.text.SimpleDateFormat;import java.util.Date;import Entry.Main;public class LiftOff implements Runnable{...原创 2018-05-13 00:27:06 · 182 阅读 · 0 评论 -
正则表达式Essential
转载自:java Tutorial类型:读书笔记测试工具类这个网站提供基本的正则表达式测试工具: 这个就是大概让你直到正则表达式怎么用,我为了以后用做个记录,加个注释,美滋滋!RegexTestHarness.java import java.io.Console; import java.util.regex.Pattern; import java.ut...转载 2018-04-13 11:45:24 · 112 阅读 · 0 评论 -
NIO核心对象
NIO区别于传统IO的主要特征在于:NIO采用内存映射文件的机制。这种机制是将文件的某一字节块部分映射到内存中,从而加快程序执行效率。因为传统的IO是通过指针在文件上的移动按字节处理的,它把文件当成存在硬盘里的一长串字节序列,然后通过操作系统提供的封装访问。一个框架必然要让功能变得简而有效,NIO就是提供一个更加优雅的接口。我不认为初学者应该了解整个NIO体系的很多类,通常,只需要一个简单...原创 2018-01-08 11:19:01 · 684 阅读 · 0 评论 -
(JSP+servlet)项目发布流程
前几天做了一个有前台和后台的小网站,碰见的一些软件和文件的问题需要整理一下。 假设现在我们已经写好了一个dynamic web project,需要在tomcat容器上,然后再浏览器里进行访问。 step 1 启动tomcat服务器,要用Google访问tomcat主页,必须在命令行中启动tomcat服务,假如你配置了CATALINA_HOME变量,win+R,输入cm原创 2017-06-18 01:19:57 · 1418 阅读 · 0 评论