随笔分类 -  java基础

摘要:在多线程程序中,会出现多个线程抢占一个资源的情况,这时间有可能会造成冲突,也就是一个线程可能还没来得及将更改的 资源保存,另一个线程的更改就开始了。可能造成数据不一致。因此引入多线程同步,也就是说多个线程在同一时刻只能有一个线程对共享的资源进行更改,其他线程不能对数据进行修改。 1、使用syncho 阅读全文
posted @ 2020-06-10 01:52 幻影黑子 阅读(53) 评论(0) 推荐(0) 编辑
摘要:Java 多线程编程 Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。 这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内 阅读全文
posted @ 2020-06-09 18:57 幻影黑子 阅读(160) 评论(0) 推荐(0) 编辑
摘要:声明自定义异常 在 Java 中你可以自定义异常。编写自己的异常类时需要记住下面的几点。 所有异常都必须是 Throwable 的子类。 如果希望写一个检查性异常类,则需要继承 Exception 类。 如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。 可以像下面这样 阅读全文
posted @ 2020-06-07 21:55 幻影黑子 阅读(180) 评论(0) 推荐(0) 编辑
摘要:可变参数 JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。 方法的可变参数的声明如下所示: typeName... parameterName 在方法声明中,在指定参数类型后加一个省略号(...) 。 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在 阅读全文
posted @ 2020-06-07 21:26 幻影黑子 阅读(197) 评论(0) 推荐(0) 编辑
摘要:命令行参数的使用 操作系统中启动脚本传参,启动jar、war等程序包传参 有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。 命令行参数是在执行程序时候紧跟在程序名字后面的信息。 实例 下面的程序打印所有的命令行参数: CommandLine.java 文件代码 阅读全文
posted @ 2020-06-07 21:23 幻影黑子 阅读(201) 评论(0) 推荐(0) 编辑
摘要:反射 反射是一种功能强大且复杂的机制。它主要是动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。 也就是说当我们的程序在运行时,需要动态的加载一些类,这些类可能之前用不到所以不用加载到jvm,而是在运行时根据需要才加载,这样的好处对于服务 阅读全文
posted @ 2020-05-20 20:21 幻影黑子 阅读(109) 评论(0) 推荐(0) 编辑
摘要:此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException。 大致上的方法与Collections工具类都类似。 Array.copyOf方法 c 阅读全文
posted @ 2020-05-20 09:32 幻影黑子 阅读(133) 评论(0) 推荐(0) 编辑
摘要:collections 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。如果为此类的方法所提供的 co 阅读全文
posted @ 2020-05-20 09:27 幻影黑子 阅读(198) 评论(0) 推荐(0) 编辑
摘要:对象的序列化与反序列化 序列化为将对象的信息存储到文件中,反序列化为将文件存储的对象信息读取出来。 ObjectOutputStream(对象序列化) ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStre 阅读全文
posted @ 2020-05-20 01:32 幻影黑子 阅读(179) 评论(0) 推荐(0) 编辑
摘要:Properties 介绍 Properties 是在java.util包中,该类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二 阅读全文
posted @ 2020-05-20 01:29 幻影黑子 阅读(1820) 评论(0) 推荐(0) 编辑
摘要:TreeMap 简介 是一个有序的key-value集合,它是通过红黑树实现的。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。2.是继承了AbstractMap,也是以key-value集合存储。实现了NavigableMap接 阅读全文
posted @ 2020-05-19 16:33 幻影黑子 阅读(161) 评论(0) 推荐(0) 编辑
摘要:HashSet原理 该类实现了Set接口,不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能一个。 对于 HashSet 而言,HashSet 继承自AbstractSet,它是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素。 阅读全文
posted @ 2020-05-19 16:15 幻影黑子 阅读(270) 评论(0) 推荐(0) 编辑
摘要:HashMap HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 该类实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。 散列表(Hash table,也叫哈希表) 是根据关键码值(Key 阅读全文
posted @ 2020-05-19 16:06 幻影黑子 阅读(140) 评论(0) 推荐(0) 编辑
摘要:ArrayList/Vector/LinkedList原理总结 ArrayList: 1、实现原理,采用了动态对象数组实现,默认构造函数创建了一个空的对象数组2、第一次添加元素,扩展了10个位置的容量。3、扩充算法,原来数组的大小+原来数组大小的一半4、不适合进行删除或插入操作5、为了防止数组动态扩 阅读全文
posted @ 2020-05-19 15:57 幻影黑子 阅读(214) 评论(0) 推荐(0) 编辑
摘要:为什么要用LinkedList? 我们在现实开发中我们都是会大量使用到数组以及动态的ArrayList类。然而,数组和数组列表都有一个重大的缺陷。 这就是从数组的中间位置删除一个元素要付出很大的代价,其原因是数组中处于被删除元素之后的所有元素都要向数组的前端移动。在数组中间的位置上插入一个元素也是如 阅读全文
posted @ 2020-05-19 15:53 幻影黑子 阅读(140) 评论(0) 推荐(0) 编辑
摘要:Java 中的ArrayList ArrayList是基于动态数组实现的,数组具有按索引查找的特性,所以访问很快,适合经常查询的数据。其实就是对数组的操作。首先分析一下ArrayList的几个常用方法。 1. add(E e) :将指定的元素添加到此列表的尾部。 2. indexOf(Object  阅读全文
posted @ 2020-05-19 15:46 幻影黑子 阅读(127) 评论(0) 推荐(0) 编辑
摘要:Map接口的常用实现类 Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。 从概念上而言,您可以将 List 看作是具有数值键的 Map。 而实际上,除了 List 和 Map 都在定义 java.util 中外,两者并没有直接的联 阅读全文
posted @ 2020-05-19 15:33 幻影黑子 阅读(139) 评论(0) 推荐(0) 编辑
摘要:Set集合接口 如果是实现了 Set 接口的集合类,具备的特点:无序,不可重复 添加元素 的顺序与元素出来的顺序是不一致的。注重独一无二的性质,该体系集合可以知道某物是否已经存在于集合中,不会存储重复的元素。 hashSet HashSet 底层是使用了哈希表来支持的,特点: 存取速度快。 往Has 阅读全文
posted @ 2020-05-19 15:29 幻影黑子 阅读(155) 评论(0) 推荐(0) 编辑
摘要:List接口的常用实现类 一个 List 是一个元素有序的、可以重复、可以为 null 的集合(有时候我们也叫它“序列”)。 ArrayList 最常用的List接口实现类,底层使用可变长度的动态数组实现。ArrayList有一个初始容量(capacity = 10),当元素数量大于初始容量时进行扩 阅读全文
posted @ 2020-05-19 15:16 幻影黑子 阅读(781) 评论(0) 推荐(0) 编辑
摘要:集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型。接口允许集合独立操纵其代表的细节。在面向对象的语言,接口通常形成一个层次。 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构。 算法:是实现集合接口的对象里的方法执行的 阅读全文
posted @ 2020-05-19 15:15 幻影黑子 阅读(125) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示