
Java
未来无所不能
一个初出茅庐的年轻人不去曲意逢迎、不去投机取巧,只要踏实做事,就一定能取得成功。
展开
-
Java 编程技巧之数据结构
1.使用HashSet判断主键是否存在HashSet实现Set接口,由哈希表(实际上是HashMap)支持,但不保证set 的迭代顺序,并允许使用null元素。HashSet的时间复杂度跟HashMap一致,如果没有哈希冲突则时间复杂度为O(1),如果存在哈希冲突则时间复杂度不超过O(n)。所以,在日常编码中,可以使用HashSet判断主键是否存在。案例:给定一个字符串(不一定全为字母),请返...转载 2019-10-13 14:43:44 · 282 阅读 · 0 评论 -
java通过http url读取远程文件
java通过http url读取远程文件try { URL url = new URL("http://localhost:8080/VWdummy/VW/VW0001R/tgd/ja/test.txt"); InputStream is = url.openStream(); BufferedInputStream bis = new BufferedInputStream(is); ...原创 2019-09-16 10:44:55 · 10228 阅读 · 0 评论 -
Java类加载器总结
1.类的加载过程JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:装载:查找并加载类的二进制数据;2)链接:验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;3)初始化:为类的静态变量赋予正确的初始值;那为什么我要有验证这一步骤呢...转载 2019-08-24 13:50:30 · 147 阅读 · 0 评论 -
关于 ? extends T 和 ? super T 的存在意义和使用
<? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。<? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类。<? super T> 表示类型下界(Java Core中叫超类型限定),表示参数化类型是此类型的超类型(父类型),直至...原创 2019-08-24 13:35:24 · 814 阅读 · 0 评论 -
java项目里classpath具体指哪儿个路径
一、classpath路径指什么只知道把配置文件如:mybatis.xml、spring-web.xml、applicationContext.xml等放到src目录(就是存放代码.java文件的目录),然后使用“classpath:xxx.xml”来读取,都放到src目录准没错,那么到底classpath到底指的什么位置呢?src路径下的文件在编译后会放到WEB-INF/classes路...转载 2019-08-06 12:59:05 · 373 阅读 · 0 评论 -
阿里巴巴Java开发规范手册
一、编程规约(一) 命名规约【强制】所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例: _name / __name / Object/name/nameObject / name_ / nameObject/name/name / Object$【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写...转载 2019-07-22 15:22:24 · 2118 阅读 · 0 评论 -
Java集合:整体结构
一、Java中集合Java中集合类是Java编程中使用最频繁、最方便的类。集合类作为容器类可以存储任何类型的数据,当然也可以结合泛型存储指定的类型(不过泛型仅仅在编译期有效,运行时是会被擦除的)。集合类中存储的仅仅是对象的引用,并不存储对象本身。集合类的容量可以在运行期间进行动态扩展,并且还提供很多很方便的方法,如求集合的并集、交集等。二、集合类结构Java中的集合包含多种数据结构,如链表、...原创 2019-07-22 14:47:53 · 158 阅读 · 0 评论 -
Java并发编程:Synchronized及其实现原理
Java并发编程系列:Java 并发编程:核心理论Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化(轻量级锁、偏向锁)Java 并发编程:线程间的协作(wait/notify/sleep/yield/join)Java 并发编程:volatile的使用及其原理一、Synchronized的基本使用Synchronized是Jav...原创 2019-07-22 14:37:22 · 143 阅读 · 0 评论 -
java中native的用法
前言:在查看 Thread.java 文件时,发现有一个 方法比较特殊private native void start0();概念:native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。JNI是Java本机接口...转载 2019-07-30 16:42:46 · 479 阅读 · 0 评论 -
阿里P7/P8学习路线图——技术封神之路
一、基础篇JVMJVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序、顺序一致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定JVM参数及调优 Java对象模型oop-klass、对象头HotSpot即时编译器、编译优化类加载机制classLoader、类加载过程、双亲委派(破...转载 2019-07-30 16:03:13 · 279 阅读 · 0 评论 -
LinkedHashMap 的实现原理
LinkedHashMap 概述HashMap 是无序的,HashMap 在 put 的时候是根据 key 的 hashcode 进行 hash 然后放入对应的地方。所以在按照一定顺序 put 进 HashMap 中,然后遍历出 HashMap 的顺序跟 put 的顺序不同(除非在 put 的时候 key 已经按照 hashcode 排序号了,这种几率非常小)JAVA 在 JDK1.4 以后提...原创 2019-07-25 12:39:35 · 132 阅读 · 0 评论 -
The jar file XXX.jar has no source attachment 解决办法
今天做jar包的测试,遇到一个很头疼的问题。就是我的jar文件里的class不能反编译。搞了一个小时,不是因为jad与eclipse版本不匹配,也不是因为网上的乱起八糟的原因。先把官方的描述贴一下:Invisible code from JARsSometimes control-clicking in the editor or single-stepping down through ...原创 2019-07-25 09:32:03 · 2167 阅读 · 0 评论 -
时间Date的各种获取方式
常用的时间获取方式public class DateUtils {/** * 获取时间戳 * 输出结果:1438692801766 */@Testpublic void getTimeStamp() { Date date = new Date(); long times = date.getTime(); System.out.println(times);...原创 2019-07-20 13:03:02 · 552 阅读 · 0 评论 -
关于java8 lambda表达式
Java8发布已经有一段时间了,这次发布的改动比较大,很多人将这次改动与Java5的升级相提并论。Java8其中一个很重要的新特性就是lambda表达式,允许我们将行为传到函数中。想想看,在Java8之前我们想要将行为传入函数,仅有的选择就是匿名内部类。Java8发布以后,lambda表达式将大量替代匿名内部类的使用,简化代码的同时,更突出了原来匿名内部类中最重要的那部分包含真正逻辑的代码。尤其...原创 2019-07-24 15:27:33 · 138 阅读 · 0 评论 -
Java trim isBlank isDataTime的实现
1.去除空白(包括全角和半角空格)public static String trim(String target) { if (target == null) { return target; } else { return target.trim().replaceAll("^[\\s ]+", "").replaceAll("[\\s ]+$","")...原创 2019-07-24 13:13:14 · 182 阅读 · 0 评论 -
利用Java8 lamda表达式对文件进行读取
利用Java8 lamda表达式对文件进行读取1.准备数据C:\test\filelist1.txt内容:1232.txt内容:4562.利用Java8 lamda表达式实现import java.io.File;import java.nio.file.Files;import java.nio.Path;import java.nio.file.Paths;public...原创 2019-07-24 12:54:42 · 882 阅读 · 1 评论 -
Java 性能优化的45个细节
Java 性能优化的45个细节在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:控制资源的使用,通过线程同步来控制资源的并发访问;控制实例的产生,以达到节约...原创 2019-07-19 15:39:51 · 167 阅读 · 0 评论