![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 89
薛瑄
大道至简
展开
-
全局变量、静态全局变量、局部变量、静态局部变量
Tables 作用域 存储方式 生命周期 初始化 java C/C++ 全局变量(外部变量) 整个工程文件内 内存的静态存储区域 整个源程序 0 没有全局变量的概念 在main()函数前(类外)定义,用extern int g_int ;声明,才可以使用 静态全局变量 定义它的文件内 内存的静态存储区域 整个源程序 0 类里声原创 2015-09-07 15:18:14 · 991 阅读 · 0 评论 -
Java中Collections.sort()排序详解
java中Collections.sort排序详解java基础—— Collections.sort的两种用法,简单明了 。java List 排序 Collections.sort()Java 中 Comparable 和 Comparator 比较第一种:ComparableComparable 是排序接口。若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Compa原创 2016-08-17 09:49:54 · 75236 阅读 · 5 评论 -
组合数组、复制数组、打印多维数组
这些知识虽然很简单,但有时候用的时候,记忆还是有些模糊,记录一下直接看示例:public class JavaTest { public static String[] concat(String[] a, String[] b) { String[] c = new String[a.length + b.length]; System.arraycopy(a转载 2017-06-07 18:21:22 · 944 阅读 · 0 评论 -
Java 线程池原理和队列详解
参考: http://blog.csdn.net/mazhimazh/article/details/19243889 http://shift-alt-ctrl.iteye.com/blog/1840385 http://dongxuan.iteye.com/blog/901689 http://blog.csdn.net/sd0902/article/details/8395677线程池转载 2016-06-17 18:41:27 · 13024 阅读 · 5 评论 -
为什么要设置环境变量以及JDK和JRE的区别
参考 环境变量设置参考 为什么要设置Java环境变量今天为止对环境变量的设置还不是很懂,而且网上的大部分资料几乎都是设置方法,没有说原因。今天学Linux,遇到了Java环境变量的设置,无意间找到了详细透彻讲解Java环境变量的设置。 1. PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 j转载 2015-11-24 10:43:13 · 8733 阅读 · 2 评论 -
Java中删除文件、删除目录及目录下所有文件
转载:http://www.cnblogs.com/eczhou/archive/2012/01/16/2323431.html功能:删除某个目录及目录下的所有子目录和文件知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下:import java.io.File;public class DeleteDire转载 2016-01-28 12:20:16 · 5444 阅读 · 0 评论 -
for each删除List中的元素出错
转载:http://blog.csdn.net/tianlincao/article/details/7006963场景是,需要删除objList中的某几个元素,自然而然,我们会习惯性的写下如下语句:int i = 0; for(Object o : objList) { if(o == value) { objList.remove(i);转载 2016-03-14 09:43:44 · 2819 阅读 · 0 评论 -
Java String.split() 转义字符
http://java.freesion.com/article/9186972231/;jsessionid=A774838DA80F3BF30E85C8B178116FABhttp://blog.sina.com.cn/s/blog_6b873f290100q31q.htmlsplit可以使用正则表达式, 注意: |, ., &, *, + 是转义字符, 要加\\public String转载 2016-05-03 19:05:42 · 13936 阅读 · 0 评论 -
try、catch、finally、return 执行顺序——超详细讲解
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50266995 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!代码示例:http://www.cnblogs.com/lanxuezaipiao/p/3440471.html结论:1、不管有木有出现异常,finally块中代码都会执行...原创 2015-12-11 18:37:23 · 16306 阅读 · 5 评论 -
使用Java 8 新类进行注解
错误开始看Thinking in java 4th第20章注解(详见该书中文版P629-630),运行书中的代码,找不到com.sun.mirror.apt.* com.sun.mirror.declaration.* ,那么两个包下相关的类也都会找不到分析书中jdk版本是1.5,而我的jdk版本是1.8。com.sun.mirror这个包在java 7 就不建议使用,在java 8被废弃。解决知道原创 2017-07-23 19:57:02 · 1379 阅读 · 1 评论 -
Accept-Encoding gzip 乱码 和Okhttp的解决方法
在使用okhttp请求服务器数据的时候,发现返回的数据一直都是乱码,但是使用fiddler抓包,decode后,可以正常显示。刚开始一直怀疑是编码的问题,后来对比了hex的数据和程序中乱码的二进制,发现不一样。fiddler可以自动处理,说明不是密钥加密。经过不断的尝试发现时Accept-Encoding设置的问题,下面就一一详细介绍一下Accept-Encoding设置Accept-En...转载 2018-08-14 10:11:42 · 17660 阅读 · 2 评论 -
InputStream和Reader的区别
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/49252791 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!java.io下面有两个抽象类:InputStream和Reader InputStream是表示字节输入流的所有类的超类 InputStream提供的是字节流的读取,而非文本原创 2016-01-23 15:35:54 · 1033 阅读 · 0 评论 -
Java Socket简单例子、readLine()、readUTF()
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51752701 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!Socket简单例子服务端:public class Server { public static final int PORT = 12345;//监听原创 2016-06-24 14:52:26 · 20691 阅读 · 0 评论 -
Java泛型中的PECS原则
参考:浅谈Java泛型中的extends和super关键字(转)Java泛型中的PECS原则Lists with wildcards cause Generic voodoo errorWhat is PECS (Producer Extends Consumer Super)?先来看一个错误:List<? extends Foo> list1 = new ArrayList<Foo>()原创 2016-08-11 10:00:41 · 21180 阅读 · 8 评论 -
Java中Class对象详解,.class、class.forName()、 getClass()区别
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51659663 文章出自:薛瑄的博客你也可以查看我的其他同类文章,也会让你有一定的收货!以下所示页码,是指《java编程思想》第四版的页码Class对象的生成方式如下:1.类名.class 说明:JVM将使用类装载器, 将类装入内存(前提是:类还没有装入内存),原创 2016-06-13 18:05:31 · 1787 阅读 · 0 评论 -
多线程中ArrayList调用Add()添加元素时的下标越界问题(java.lang.ArrayIndexOutOfBoundsException)
问题:在多线程中使用ArrayList调用Add()添加元素时,有时候会出现下面的错误Exception in thread "Thread-1" Exception in thread "Thread-2" java.lang.ArrayIndexOutOfBoundsException: 15 at java.util.ArrayList.elementData(ArrayList.ja原创 2017-12-09 18:34:17 · 6729 阅读 · 3 评论 -
字符编码简介:ASCII,Unicode,UTF-8,GB2312及Unicode和UTF-8如何转化
参考: http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html http://www.cnblogs.com/mjgforever/archive/2008/02/27/1083135.html1、 ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态原创 2016-05-19 14:51:53 · 5021 阅读 · 5 评论 -
base家族:base16、base32和base64,转码原理
基本概念ASCII 是用128(2的8次方)个字符,对二进制数据进行编码的方式base64编码是用64(2的6次方)个字符,对二进制数据进行编码的方式base32就是用32(2的5次方)个字符,对二进制数据进行编码的方式base16就是用16(2的4次方)个字符,对二进制数据进行编码的方式Base-64编码保证了二进制数据的安全Base-64编码可以将任意一组字节转换为较长的常见文本字符序列,从而可原创 2017-09-28 11:56:33 · 16289 阅读 · 0 评论 -
socket心跳机制so_keepalive的三个参数详解
更多重要的TCP/IP选项解析详细请点击此处SO_KEEPALIVE 保持连接检测对方主机是否崩溃,避免(服务器)永远阻塞于TCP连接的输入。 设置该选项后,如果2小时内在此套接口的任一方向都没有数据交换,TCP就自动给对方 发一个保持存活探测分节(keepalive probe)。这是一个对方必须响应的TCP分节.它会导致以下三种情况:对方接收一切正常:以期望的ACK响应,2小时后,TCP将发原创 2015-09-20 21:42:12 · 3032 阅读 · 0 评论 -
String、StringBuilder、StringBuffer 用法比较
String、StringBuilder、StringBuffer 三个类源自JDK的 java/lang/ 目录下:String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全,JDK 5.0(1.5.0) 后支持)String 简要的说, String 类型和 StringBuffer 类型的转载 2015-10-15 09:17:30 · 726 阅读 · 0 评论 -
Java中的byte[]/char[]/int/String数据类型转换
常用的编码方式有Unicode、ASCII、UTF-8、GB2312、ISO-8899-1等。采用不同的编码方式,同样的n位二进制“数字”组合代表的“字符”也会不一样。具体采用什么样的编码方式,对“字符”怎样解析,就要看编程所在的平台是什么样了。同时,为了方便,我们并不会直接用n位二进制的表示,而是用它的十六进制表示。八种基本数据类型: 数据类型 名称 长度 备注 byte 字原创 2016-06-23 18:10:39 · 6612 阅读 · 0 评论 -
java.util.ConcurrentModificationException原因及解决方法
参考:http://www.cnblogs.com/frankliiu-java/articles/1759460.html http://blog.csdn.net/chenssy/article/details/38151189错误代码:for (Map.Entry<Integer, Integer> map:ArtSDK.mCommandTypeStatus.entrySet()){原创 2016-07-22 15:35:59 · 5250 阅读 · 0 评论 -
日期操作类(DateFormat与SimpleDateFormat)的区别和使用详解
日期操作类(DateFormat与SimpleDateFormat)的区别和实例SimpleDateFormat使用详解一、DateFormat类此类是一个日期的格式化类,用来格式化日期。具体日期可以通过java.util.Date类来获取。DateFormat类的定义:此类是定义在java.test包中的。public abstract class DateFormat extends Forma转载 2016-08-15 10:33:04 · 31135 阅读 · 2 评论 -
Android TimerTask 的简单应用
android TimerTask 的简单应用Java:如何正确使用Timer【java定时器的使用(Timer) 】android应用开发中常常会用到定时器,不可避免的需要用到 TimerTask 定时器任务这个类 下面简单的一个示例演示了如何使用TimerTaskTimer 的使用在不同的场景下,需要使用不同的Timer接口。如上所说,主要区分两种情况1) 在指定时间执行任务,只执行一次pu转载 2016-11-21 19:20:54 · 2953 阅读 · 0 评论 -
java中volatile关键字的含义
synchronized同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用synchronized 修饰的方法 或者 代码块。volatile用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值。volatile很容易被误用,用来进行原子性操作。下面看一个例子原创 2016-12-12 19:37:08 · 994 阅读 · 6 评论 -
Java Lambda表达式入门
我对Java 8发布非常激动,尤其是lambda表达式和流API。越来越多的了解它们,我能写出更干净的代码。第一次看到用lambda表达式写出来的Java代码时,我对这种表达方式是拒绝的,认为它们把Java搞得不可读,但我错了。学习了一下lambda表达式,真的感觉这种表达方式挺简单的。还有我想说的是,lambda表达式入门真的非常非常简单,所以不要觉得任何负担在android中使用Lambda,可转载 2016-12-29 17:21:09 · 1446 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不转载 2015-09-17 14:19:55 · 698 阅读 · 0 评论 -
Java中使用BufferedReader读取文件的好处
来于:http://segmentfault.com/q/1010000000422506 没有缓冲区时,每次读取操作都会导致一次文件读取操作(就是告诉操作系统内核我要读这个文件的这个部分,麻烦你帮我把它取过来)。而有缓冲区时,会一次性读取很多数据,然后按要求分次交给上层调用者。读取块大小通常是按最适合硬件的大小来读的,因为对于硬件来说,一次读取一块连续数据(比如 1K)和一次读取一个字节需要的时原创 2015-09-10 22:19:14 · 4633 阅读 · 0 评论 -
Java 标准I/O重定向
转载:http://blog.csdn.net/zhy_cheng/article/details/7891142Java的标准输入/输出分别通过System.in和System.out来代表,在默认的情况下分别代表键盘和显示器当程序通过System.in来获得输入时,实际上是通过键盘获得输入。当程序通过System.out执行输出时,程序总是输出到屏幕。在System类中提供了三个重定向标准转载 2016-06-16 10:40:36 · 1272 阅读 · 0 评论 -
Java IO基础知识
数据流是接收数据或发送数据的管道 流的单向性: 可以从输入流读,但不能从输入流写 可以从输出流写,但不能从输出流读1.阻塞与非阻塞 io流是阻塞式的,在阻塞模式中,线程将在读或写时阻塞,一直到读或写操作彻 底完成。如果在读的时候,数据尚未完全到达,则线程将在读操作上阻塞,一直到数据可用。 nio流是非阻塞的,在非阻塞模式中,线程将读取已经可用的数据(不论多少),然原创 2015-10-19 17:19:47 · 711 阅读 · 0 评论 -
hashCode() 和equals() 区别和作用
HashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键。 那么Java运行时环境是如何判断HashSet中相同对象、HashMap中相同键的呢?当存储了“相同的东西”之后Java运行时环境又将如何来维护呢? 在研究这个问题之前,首先说明一下JDK对equals(Object obj)和hashcode()这两个方法的转载 2015-10-27 18:45:18 · 653 阅读 · 0 评论 -
如何判断socket是否连接,异常断开拔出网线
setSoTimeout public void setSoTimeout(int timeout) throws SocketException 启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。将此选项设为非零的超时值时,在与此 Socket 关联的 InputStream 上调用 read() 将只阻塞此时间长度。如果超过超时值,将引原创 2015-11-07 18:56:05 · 19736 阅读 · 1 评论 -
socket accept()多线程连接 详解
socket协议详解:https://software.intel.com/zh-cn/blogs/2012/12/18/java-socket-socket在使用accept函数的时候,如果服务器面向多个客户的连接,必须使用while循环,每次循环阻塞在accept函数,等待新的连接到来,这样才能返回新的socket。如果不使用while死循环每次阻塞在accept函数,也可以面向多个客户连接,原创 2015-11-07 19:03:00 · 11393 阅读 · 3 评论 -
keySet 与entrySet 遍历HashMap性能差别
转载:http://kim-miao.iteye.com/blog/736143 http://blog.csdn.net/xueyepiaoling/article/details/5217709一、常用的遍历HashMap的两种方法第一种: entrySet()Map map = new HashMap(); Iterator iter = map.entrySet().iterator()转载 2016-06-14 10:48:17 · 2118 阅读 · 0 评论 -
使用java、javac命令行编译工程以及遇到的问题
转载: ubuntu下使用java、javac命令行编译工程命令行使用javac及java编译、运行java程序出现的问题自己动手编译、运行Java程序一、java和javac命令行1、javac命令行javac.exe用于编译java源文件,生成.class文件语法:javac [option] source常用的[option]选项: A、-classpath <路径>(-cp缩写):转载 2016-06-14 17:29:04 · 10294 阅读 · 0 评论 -
类加载器与双亲委派模型
类加载器加载类的开放性类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决定如何获取所需的类。虚拟机规范并没有指明二进制字节流要从一个Class文件获取,或者说根本没有指明从哪里获取、怎样获取。这种开放使得Java在很多领域得到充分运用,例如:从ZIP包中读取,这很常见,成为J原创 2019-04-18 12:01:00 · 474 阅读 · 0 评论