![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
paullinjie
这个作者很懒,什么都没留下…
展开
-
java-static知识点
有要详解,那我找资料给你吧static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可转载 2017-03-03 12:00:33 · 320 阅读 · 0 评论 -
Arrays.copyof(···)与System.arraycopy(···)区别
首先观察先System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)的声明:[java] view plain copypublic static native void arraycopy(Object src, int srcPos,转载 2017-04-27 09:58:49 · 247 阅读 · 0 评论 -
jsp页面中的代码执行加载顺序介绍
1. java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码。所以加载执行顺序是是java>jsp>js。2. js在jsp中的加载顺序页面上的js代码时html代码的一部分,所以页面加载的时候是由上而下加载。所以js加载的顺序也就是页面中标签出现的顺序。标签里面的或者是引入的外部js文件的执行顺序都是其语句出转载 2017-05-31 12:21:02 · 616 阅读 · 0 评论 -
yyyyMMddHHmmss转变为日期格式
网上找了一些时间格式的转变,但是都没找到我要的方法先记下我要的转换方法吧,把yyyyMMddHHmmss格式的字符串转换为datetime格式的时间DateTime dt = DateTime.ParseExact("20060709110901","yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCul转载 2017-07-13 17:09:21 · 13589 阅读 · 1 评论 -
ConcurrentHashMap、synchronized与线程安全
最近做的项目中遇到一个问题:明明用了ConcurrentHashMap,可是始终线程不安全除去项目中的业务逻辑,简化后的代码如下:[java] view plain copypublic class Test40 { public static void main(String[] args) throws In转载 2017-07-21 13:52:11 · 307 阅读 · 0 评论 -
Java 正则表达式学习总结和一些小例子
字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础工具,可以用于很多类型的文本处理, 如匹配,搜索,提取和分析结构化内容. java.util.regex是一个用正则表转载 2017-07-25 09:19:20 · 341 阅读 · 0 评论 -
解决Java读取properties文件中文乱码的问题
问题的提出:初用properties,读取java properties文件的时候如果value是中文,会出现读取乱码的问题 问题分析:开始以为是文件保存编码问题,把eclipse中所有的文件编码都修改成utf8,问题依然存在;把内容复制到notepad++进行utf8编码转换,问题依旧;上网搜索有人提议重写properties类或者用jdk自带的编码转换工具,嫌麻烦而且凭感觉jdk开发者不可转载 2017-08-11 17:25:53 · 2953 阅读 · 0 评论 -
Java字符串写入文件三种方式
使用FileWriterString str="hello world!"; FileWriter writer; try { writer = new FileWriter("E:/token.txt"); writer.write(str); writer.flush();转载 2017-08-11 17:27:36 · 27583 阅读 · 0 评论 -
HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难转载 2017-05-26 09:54:19 · 195 阅读 · 0 评论 -
Java集合----HashSet的实现原理
1. HashSet概述 HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。2. HashSet的实现 如果不等,则添加到该数组索引对应的链表中。-----------------------------------------------转载 2017-05-26 09:01:01 · 227 阅读 · 0 评论 -
在eclipse下安装反编译插件的步骤+用eclipse打开工作目录的配置(图文详解)
一、安装反编译工具:1、 下载JadClipse,http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download ,本例使用的是net.sf.jadclipse_3.3.0.jar,如图:2、下载相应版本的Jad,http://www.varaneckas.com/jad转载 2017-04-21 09:07:17 · 347 阅读 · 0 评论 -
深入分析Java ClassLoader原理
一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在转载 2017-02-25 15:20:53 · 190 阅读 · 0 评论 -
java并发原理
Java并发编程:Synchronized及其实现原理Java并发编程系列:Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理Java并发编程:Synchronized底层优化(轻量级锁、偏向锁)Java 并发编程:线程间的协作(wait/notify/sleep/yield/join) Java 并转载 2017-03-04 16:44:54 · 248 阅读 · 0 评论 -
Java transient关键字使用小结
1、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。2、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。3、一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。也可以认为在将持久化的对象反序列化后,被transie转载 2017-03-04 20:30:32 · 191 阅读 · 0 评论 -
HashMap和Hashtable的区别
导读:1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。 2 HashTable是线程安全的一个Collection。 Hash转载 2017-03-04 20:33:09 · 234 阅读 · 0 评论 -
HashMap与ConcurrentHashMap的区别
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable转载 2017-03-04 20:43:36 · 217 阅读 · 0 评论 -
Java中Runnable和Thread的区别
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。下面看例子:package org.thread.demo; class MyThread extends Th转载 2017-03-05 11:14:28 · 168 阅读 · 0 评论 -
线程池的原理及实现
1、线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程转载 2017-03-05 12:04:27 · 151 阅读 · 0 评论 -
Java总结篇系列:java.lang.Object
从本篇开始,将对Java中各知识点进行一次具体总结,以便对以往的Java知识进行一次回顾,同时在总结的过程中加深对Java的理解。Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java中最基本的类java.lang.Object开始谈起。Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。作为其他所有类的基类,Object具有哪些属转载 2017-03-05 15:07:42 · 634 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String转载 2017-08-11 17:28:23 · 185 阅读 · 0 评论 -
Java总结篇系列:Java泛型
一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqyumidi")转载 2017-09-24 16:23:58 · 173 阅读 · 0 评论 -
String类常用方法源码分析
环境:JDK8主要分析String类的一些常用的方法源码。String先看String类的定义:public final class String implements java.io.Serializable, ComparableString>, CharSequence可以看到String类被final修饰,因此不能被继承。String类还实现了转载 2017-10-30 23:39:19 · 290 阅读 · 0 评论 -
Java中获取文件大小的正确方法
本文出处:http://blog.csdn.net/chaijunkun/article/details/22387305,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文。今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法;另外一种是使用FileInputStream的availa转载 2017-10-30 23:43:05 · 1056 阅读 · 0 评论 -
关于Java 8新引入语法特性的简要说明
Java 8在语法上的主要改进就是新增了Lambda Expression以及Method Reference。由于官方网站的介绍稍显罗嗦,而且例子也有些复杂。我这里将提供一些更为浅显、直观的例子来帮助大家理解Java 8新引入的语法特性。Java 8中的Lambda Expression与C、C++都不太一样。Apple为LLVM Clang新开发了Blocks语法特性,使得GNU9转载 2017-11-09 16:53:36 · 342 阅读 · 0 评论 -
隔离装置传输文件
在Windows主机环境下测试无误的过程,在Linux主机上无法完成:隔离装置不同步所产生的文件原因: 1) 分析整个过程,Windows主机、Linux主机处理的区别看似相同,但其实一般情况下其缺省字符编码是不同的,经确认,Windows主机缺省为GBK编码,而Linux主机为UTF-8编码。 2)由于在生成文件时,使用的字节流方式(FileOutputStream),转载 2017-11-03 10:31:21 · 1962 阅读 · 0 评论 -
JAVA printWriter中write()和println()区别(特别注意)
最近学习JAVA网络编程,在服务器端和客户端产生一个Socket 后,两边各自用getIputStream()和getOutputStream()方法,构造各自的输入输出流。其中服务器端的Socket ssBufferedReader is=new BufferedReader(new InputStreamReader(ss.getInputStream()) );PrintWriter os...转载 2018-06-05 10:05:29 · 974 阅读 · 0 评论 -
JAVA如何通过正则表达式获取文本中数字
如何通过正则表达式获取字符串中的数字实例:Java代码 public void Test0108_03() { String input="winnt 5.1 internet winnta 5.3";//如何获得5.1 String regex="winnta"; double version=Double.parseDouble...转载 2018-06-06 20:51:31 · 6533 阅读 · 0 评论 -
Java正则表达式过滤出字母、数字和中文
原文:http://blog.csdn.net/k21325/article/details/540900661、Java中过滤出字母、数字和中文的正则表达式(1)过滤出字母的正则表达式 [html] view plain copy [^(A-Za-z)] (2) 过滤出 数字 的正则表达式 [html] view plain copy [^(0-9)] (3) 过滤出 中文 的正则表达式...转载 2018-06-06 21:03:28 · 2548 阅读 · 0 评论 -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰。 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener ->...转载 2018-07-11 20:16:31 · 92 阅读 · 0 评论 -
常见编码GBK、GB2312、UTF-8、ISO-8859-1的区别
在项目开发中,会经常遇到不同的编码方式。不管什么编码,都是信息在计算机中的一种表现,理解常见的编码方式,有助于我们避免出现乱码等现象。 最初的计算机字符编码是通过ASCII来编码的,是现今最通用的单字节编码系统,使用7位二进制数来表示所有的字母、数字、标点符号及一些特殊控制字符,作为美国编码标准来使用。ISO-8859-1编码是单字节编码,向下兼容ASCII,是许多欧洲国家使用的编码标转载 2017-10-30 23:36:35 · 801 阅读 · 0 评论 -
java使 FileWriter FileReader 无编码格式,OutputStreamWriter InputStreamReader可设置编码格式
使用Java中的 FileWriter FileReader 可以传个文件路径,然后就可以简单的实现,文件的读和写。但是这个实现是太简单了,会有问题的。简单的代码操作,如我的这篇博文里面的转存文件的代码就是使用这2个类来实现的。java修改文件名-renameTo()方法的使用实例,复制一个文件或者叫转存一个文件上面的转存代码,经过findbugs分析,有如下的提示转载 2017-10-30 16:11:10 · 1401 阅读 · 0 评论 -
Java总结篇系列:java.lang.Object
从本篇开始,将对Java中各知识点进行一次具体总结,以便对以往的Java知识进行一次回顾,同时在总结的过程中加深对Java的理解。Java作为一个庞大的知识体系,涉及到的知识点繁多,本文将从Java中最基本的类java.lang.Object开始谈起。Object类是Java中其他所有类的祖先,没有Object类Java面向对象无从谈起。作为其他所有类的基类,Object具有哪些属性和行为转载 2017-09-22 16:36:26 · 264 阅读 · 0 评论 -
Java多线程基础篇
如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些概念不转载 2017-09-20 14:35:52 · 157 阅读 · 0 评论 -
深入理解Java反射
要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运行时识别对象和类的信息,主要有2种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。1、Class对象 理解RTTI在Java中的工作原理,首先需要知道类型信息在运行时是如何表示的,这是由Class对象来完成的,它包含了与类有关的信息。Cl转载 2017-09-28 15:12:12 · 207 阅读 · 0 评论 -
Java总结篇系列:Java多线程(一)
多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的。一.线程的生命周期及五种基本状态关于Java中线程的生命周期,首先看一下下面这张较为经典的图:上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括:Java线程具有五中基本状态新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thre转载 2017-09-20 15:40:42 · 158 阅读 · 0 评论 -
Java总结篇系列:Java多线程(二)
本文承接上一篇文章《Java总结篇系列:Java多线程(一)》。四.Java多线程的阻塞状态与线程控制上文已经提到Java阻塞的几种具体类型。下面分别看下引起Java线程阻塞的主要方法。1.join()join —— 让一个线程等待另一个线程完成才继续执行。如A线程线程执行体中调用B线程的join()方法,则A线程被阻塞,知道B线程执行完为止,A才能得以继续执行。 1转载 2017-09-20 16:18:43 · 149 阅读 · 0 评论 -
Java总结篇系列:Java多线程(三)
awAmount125 */126 public synchronized void draw(double drawAmount, int i) {127 if (!flag) {128 // 账户中还没人存钱进去,此时当前线程需要等待阻塞129 try {130 Sys转载 2017-09-20 16:51:53 · 207 阅读 · 0 评论 -
Java.util.concurrent包学习(一) 线程池
在java并发包中提供了线程池相关的API,主要有Executor、ExectorService接口,ThreadPoolExecutor、ScheduledThreadPoolExecutor类,Executors工具类,CompletionService接口、ExecutorCompletionService类,Callable、Future接口、FutureTask类等。以下简要画了个UML转载 2017-09-21 09:43:39 · 289 阅读 · 0 评论 -
Java.util.concurrent包学习(二)线程同步控制相关的类
参考资料:锁机制:http://www.blogjava.net/xylz/archive/2010/07/08/325540.html并发包中提供了几个用于线程同步的类:CountDownLatch、CyclicBarrier、Semphore、Exchanger1、CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一转载 2017-09-21 09:49:24 · 231 阅读 · 0 评论 -
Java.util.concurrent包学习(三)同步集合
参考博文:http://www.cnblogs.com/jackyuj/archive/2010/11/24/1886553.htmlLinkedBlockingQueue源码分析 http://hi.baidu.com/gefforey520/item/a638b1bb5a60f6e94ec7fd07 阻塞队列 BlockingQueue(文档)线程安全,程序转载 2017-09-21 09:51:11 · 336 阅读 · 0 评论