Java 编程思想
M FS
才疏学浅,万望保函,如有错误,评论区指出,不胜感激
展开
-
[Java]深入底层聊HashMap——深入底层的最好开始
本想按照ArrayList、LinkedList、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap的顺序介绍容器类的底层的,但是考虑到HashSet其实就是HashMap的一部分(仅仅使用了HashMap的键,其值统一使用一个Object对象),所以我们就先行介绍HashMap,这样我们再介绍HashSet时就简单的多,而且也更...原创 2020-04-06 10:33:27 · 123 阅读 · 0 评论 -
[Java]深入底层聊LinkedList——简单全面,深入底层的最好开始
书接上文ArrayList,我们话不多说直接开整。LinkedList我们在学习容器类List的时候都知道,ArrayList适用于读,在查询指定内容时要比LinkedList快的多。而LinkedList则适用于写,在向容器中插入内容时要比ArrayList快的多。是什么导致了这两者之间的不同呢?那肯定是底层实现喽。从上一篇文章我们了解到,ArrayList底层是使用数组进行实现的,我们在...原创 2020-04-03 11:12:36 · 847 阅读 · 9 评论 -
[Java]深入底层聊ArraysList——简单全面,深入底层的最好开始
写博客也有一段时间了,也上过两次推荐。但是总感觉自己的写博客和那牛人大神的博看还有还大差距,看别人的博客时发现别人的博客的技术水平很高,但是自己去写的时候却很难发现那些深奥的问题。我自己反思觉得主要时因为我开发经验不足,遇到的问题过少所导致的。这个问题不是一天两天能够解决的,我只能是多阅读牛人的博客,寻求真正的项目机会,在实战中积累知识、发现问题。但这并不意味着在这段时间我就放弃写博客了。就读者...原创 2020-04-02 20:57:41 · 978 阅读 · 4 评论 -
[Java]多线程:共享资源同步——不认真看你会后悔的
共享资源同步再进行多线程开发时最令人头痛的问题估计就是对共享资源的控制了吧,今天就让我们谈一谈这个问题吧。共享资源顾名思义就是需要被多个线程使用的资源,但是很多情况下我们是不能允许多个线程同时使用这个资源的。这往往会产生令人意想不到的问题。就比如下面这个例子:package com.mfs.thread;import java.util.concurrent.ExecutorServic...原创 2020-03-27 08:59:16 · 3089 阅读 · 7 评论 -
[Java]三分钟入门多线程
并发对学习编程的人来说可谓是一道坎,迈不过这道坎以后学习更加深奥的东西也只是学其皮毛,难有大成。我就是当时没有打好基础,最后学习Java web、Java框架的时候对这些东西很难有深刻的理解,所以我不得不回头来恶补基础。今天我们就来谈谈并发那些事。并发并发就是将程序划分为多个任务,每个任务可以在同一时间内同时执行,与顺序执行相比大大缩短执行的时间。在多处理机系统中情况确实如上所属,所有的任务...原创 2020-03-24 10:59:22 · 646 阅读 · 3 评论 -
[Java]还在用360压缩吗?自己写一个吧
Java中的I/O支持读写压缩格式的数据流,我们可以对其进行封装以达到压缩和解压缩的目的。这些类并不是从Reader、Writer继承来的,而是属于InputStream、OutputStream继承体系的一部分。也就是说他们面向的是对字节的操作。如果我们必须面向字符进行操作,可以使用InputStreamReader、OutputStreamWriter进行很方便的转换。压缩类功能...原创 2020-03-20 10:17:17 · 598 阅读 · 0 评论 -
[Java]内存映射文件
我们要读取或者修改的文件过大而不能放入内存时,使用内存映射文件就能帮我们来进行修改和读取。 这时我们完全可以假定整个文件已经被放入内存,而且完全可以把它当作一个很大的数组来访问package com.mfs.io;import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;im...原创 2020-03-19 19:01:13 · 535 阅读 · 1 评论 -
[Java]动态代理
题目:使用动态代理编写一个系统实现事务,其中,代理在被代理的调用成功时(不抛出任何异常)提执行提交,而在其执行失败时执行回滚。你的提交和回滚都针对一个外部文本文件,该文件不在Java异常的控制范围之内。你必须注意操作的原子性。package test;import java.io.File;import java.io.FileReader;import java.io.FileWrit...原创 2020-03-06 19:51:05 · 267 阅读 · 0 评论 -
[Java]正则表达式
创建正则表达式的模式对象使用Pattern.compile()静态方法创建Pattern对象,然后再使用Pattern对象的matcher()方法产生一个Matcher对象。Matcher类中提了大量的用于模式匹配的方法。Pattern pattern = Pattern.compile("//w"); //compile的参数是字符串形式的正则表达式Matcher matcher = ...原创 2020-02-25 22:49:16 · 129 阅读 · 0 评论 -
[Java]异常丢失
package test;import java.io.IOException;public class MyExceptionTest { public static void f () throws MyException{ throw new MyException(); } public static void f2 () throws My...原创 2020-02-24 16:53:28 · 135 阅读 · 0 评论 -
[Java]异常链
在捕获异常后抛出新的异常,并把原来的异常信息保留下来,这被称为异常链。保留原来的异常信息我们需要用到Trowable的cause属性,但是除了Error、Exception和RuntimeException外都,没有提供带cause参数的构造器。像这种没有带cause参数的构造器的异常我们在添加原始的异常信息时需要使用initCause()方法,下面我们以一个动态添加fields的例子来展示一下...原创 2020-02-24 14:40:41 · 176 阅读 · 0 评论 -
持有对象——容器类
分类Java的容器类分为Collection和Map两种类型Collection:描述了一个集合的概念,根据不同的需求又提供了不同的实现。List 集合必须按照插入的顺序保存对象;Set集合中不能有重复元素;Queue集合按照 队列的规则进行元素操作。Map:map中保存的是“键值对”对象,它允许使用者通过对象(键)来查找对象(值)。Collection添加元素Collectio...原创 2020-02-16 21:13:50 · 178 阅读 · 0 评论 -
初识泛型擦除
多次听到泛型擦除也看过不少的博客解释,但始终都是看的时候觉得挺有道理一转眼就忘的一干二净,归根结底是没有自己的认识。所以我今天翻看了ArrayList的实现源码来真真正的认识一下泛型擦除。我们都用过ArraryList类,都知道他是一个容器类,并且从javase5之后是一个类型安全的容器类(我们再使用他的时候必须指定这个泛型的具体类型,然后在使用他的过程中也只能向这个容器中添加这个类型的对象,最...原创 2020-02-10 22:51:47 · 275 阅读 · 0 评论 -
拼接String对象的优化
package com.mfs.stringtest;public class StringTest { private static String hello = "hello"; private static String blank = " "; private static String world = "world"; private static String over =...原创 2019-12-08 22:07:00 · 195 阅读 · 0 评论