
java语言
-Billy
这个作者很懒,什么都没留下…
展开
-
ArrayList删除元素的技巧
当我们想要删除ArrayList中的元素时,往往会遍历下标直接删除,对于基本数据类型的数组来说,没有什么问题,但对于数组大小可变的集合来讲,有时就会出错。如下:List list = new ArrayList<>(); // 初始化listfor (int i=0; i<10; i++) list.add(i);System.out.println(Arrays...原创 2018-04-07 17:43:40 · 7703 阅读 · 0 评论 -
java的服务是每收到一个请求就新开一个线程来处理吗?tomcat呢?
据说服务有两种:收到一个请求就处理,这个时候就不能处理新的请求,这种为阻塞收到一个请求就新开一个线程去处理任务,主线程返回,继续处理下一个任务,这种为非阻塞。那么,问题来啦:java的服务是属于那种形式呢,怎么区分?比如tomcat又是属于哪种呢?...转载 2018-08-23 10:38:34 · 996 阅读 · 0 评论 -
关于迭代器在集合遍历中发生的并发修改异常
原因:迭代器是依赖于集合的,相当于集合的一个副本.当迭代器操作的时候,如果发现和集合不一样,则抛出异常(并发修改异常)Exception in thread “main” java.util.ConcurrentModificationException:并发修改异常解决方案:&nbsp; &nb...转载 2018-08-20 12:51:22 · 1541 阅读 · 0 评论 -
RandomAccess接口理解
根据javadoc上面的的解释是:RandomAccess 是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的list中表现的更加高效。我们可以简单的看下Collections下的binarySearch方法的源码:public static &...转载 2018-08-20 12:35:31 · 684 阅读 · 0 评论 -
Java Collections.synchronizedMap方法分析
synchronizedMap()返回由指定映射支持的同步(线程安全的)映射。实际上该方法只是一个工具方法, 将传入Map的实现方法加一个同步(synchronized)锁代理,内部还是调用实现的对应方法. //Collections.synchronizedMap(Map&lt;K, V&gt;) public static &lt;K,V&gt; ...转载 2018-08-20 12:24:25 · 1548 阅读 · 0 评论 -
Java中的字符串连接符(+)
在Java中字符串是一个常用的东西,而其一个常用的操作是字符串的拼接,Java对此提供了一种非常直观的操作方式——即 + 操作符。String str0 = "a";String str1 = str0 + "b";如上的程序片段就实现了一个字符串的拼接,可以看到整个描述非常简洁,一目了然。学习Java的时候,这是接触到的第一种拼接字...转载 2018-08-20 12:02:54 · 12164 阅读 · 0 评论 -
HashMap到底是插入链表头部还是尾部
分析源码分析链表插入的位置,重点是分析HashMap的put方法。jdk1.6put方法的代码如下:public V put(K key, V value) { if (key == null) return putForNullKey(value); int hash = hash(key.hashCode()); int i ...转载 2018-08-15 11:06:48 · 8497 阅读 · 2 评论 -
Java学习指南
博文目录:Java初级篇 优秀资源Java之美[从菜鸟到高手演变]之Java学习方法 Java之转载 2018-08-02 12:17:00 · 704 阅读 · 0 评论 -
java并发编程基础知识
1. 同步和异步同步和异步通常用来形容一次方法调用。同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。 异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。https://www.cnblogs.com/anny0404/p/5691...原创 2018-08-02 12:06:24 · 373 阅读 · 0 评论 -
RandomAccess接口理解
根据javadoc上面的的解释是:RandomAccess 是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的list中表现的更加高效。我们可以简单的看下Collections下的binarySearch方法的源码:public static <T> int binarySearch(List<? ext...转载 2018-08-10 10:46:59 · 683 阅读 · 0 评论 -
java类中serialversionuid 作用 是什么?
serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidCastEx...转载 2018-08-10 10:28:21 · 344 阅读 · 0 评论 -
关于方法覆盖和属性覆盖的问题?
class A{ public static String staticStr = "A's static field"; public String nonStaticStr = "A's nonstatic field"; public static void staticMethod() { System.out.println("A's static method"); ...原创 2018-07-08 10:17:15 · 1286 阅读 · 5 评论 -
命令行下使用java命令时出现“找不到或无法加载主类”的错误
最近,我在写一个java程序命令行下传参的代码时,控制台始终报给我一个错误。代码很简单,如下:package basics;public class Test{ public static void main(String args[]) { // 判断控制台是否传入参数 if (0 != args.length) { for (int i = 0; i < arg...原创 2018-04-13 11:31:59 · 917 阅读 · 1 评论 -
基本数据类型的 == 和 equals 比较
1、基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较。2、两个Integer类型进行“==”比较,如果其值在-128至127,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关。3、两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续比较值,如果值也相同,返回true。...原创 2018-04-06 21:09:39 · 3693 阅读 · 0 评论 -
java中字符串编解码的问题
1. Java一律采用Unicode编码方式,每个字符无论中文还是英文字符都占用2个字节。Java的char类型,通常以UTF-16 Big Endian的方式保存一个字符。2. 对于字符串String s = "你好世界";如果源码文件是GBK编码, 操作系统(windows)默认的环境编码为GBK,那么编译时, JVM将 按照GBK编码将字节数组解析成字符,然后将字符转换为unicode格式...原创 2018-04-14 16:22:58 · 795 阅读 · 0 评论 -
java中super和this的区别
原创 2018-04-14 15:57:17 · 206 阅读 · 0 评论 -
比较两个数组元素值时常常犯得一个错误
最近,我在用java进行数组元素比较时,遇到一个问题java.lang.ArrayIndexOutOfBoundsException(数组越界)。代码如下: public static void main(String[] args) { String s1 = "abc"; String s2 = "abc"; char[] array1 = s1.toCharArr...原创 2018-03-26 10:55:23 · 189 阅读 · 0 评论 -
Java transient关键字讲解
&amp;nbsp; &amp;nbsp; Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Java语言规范中指出:为了获得最佳速度,允许转载 2018-08-20 17:34:02 · 763 阅读 · 0 评论