java基础
云果龙
这个作者很懒,什么都没留下…
展开
-
XML 和 HTML 的区别
XML: 可扩展标记语言(Extensible Markup Language)HTML:超文本标记语言(Hyper Text Markup Language)XML 被设计用来传输和存储数据。HTML 被设计用来显示数据。原创 2021-04-01 11:35:59 · 73 阅读 · 0 评论 -
java 线程
进程是指运行中的程序,比如我们使用qq,就启动了一个进程,操作系统就会给该进程分配内存空间,当我们使用迅雷,又启动了一个进程,操作系统将为迅雷分配新的存储空间进程是程序的一次执行过程,或是正在运行的一个程序,是动态过程:有它自身的产生,存在和消亡的过程线程是由进程创建的,是进程的一个实体一个进程可以拥有多个线程单线程:同一时刻,只允许执行一个线程多线程: 同一时刻,可以执行多个线程,比如:一个qq进程,可以同时打开多个聊天窗口,一个迅雷,可以同时下载多个文件并发:同一时刻,多个任务交替执行,造.原创 2021-03-28 14:40:04 · 84 阅读 · 0 评论 -
java 泛型
示例public class Generic01 { public static void main(String[] args) { Person<Integer> integerPerson = new Person<Integer>(666); Person<String> stringPerson = new Person<String>("123"); Person<ArrayList&原创 2021-03-26 21:22:21 · 128 阅读 · 1 评论 -
java 集合练习
练习1public class Homework { public static void main(String[] args) { ArrayList arrayList = new ArrayList(); arrayList.add(new News("kkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "hhhhhhhhhhhhhhhhhhhhh")); arrayList.add(new News("vvvvvvvvvvvvv原创 2021-03-26 17:50:30 · 146 阅读 · 0 评论 -
java Collections 常用方法
public class CollectionsDemo { public static void main(String[] args) { List list = new ArrayList(); list.add("tom"); list.add("java"); list.add("c#"); list.add("python"); // [tom, java, c#, python]原创 2021-03-26 16:00:21 · 116 阅读 · 0 评论 -
java 如何选择适合的集合实现类
一组对象(单列) :Collection接口允许重复: List增删多: LinkedList(底层维护了一个双向链表)改查多:ArrayList(底层维护了Object类型的可变数组)不允许重复: Set无序: HashSet(底层是HashMap,维护了一个哈希表,即数组+链表+红黑树)排序: TreeSet插入和取出顺序一致: LinkedHashSet(底层LinkHashMap的底层HashMap),维护数组+双向链表一组键值对: Map键无序: Has..原创 2021-03-26 14:09:22 · 110 阅读 · 0 评论 -
Java Hashtable
存放的元素是键值对: 即K-VHashtable的键和值都不能为nullHashtable使用方法基本上和HashMap一样Hashtable是线程安全的,HasMap是线程不安全的原创 2021-03-26 10:56:40 · 80 阅读 · 1 评论 -
java Map介绍和遍历Map
Map,用于保存具有映射关系的数据: key-value(双列元素)key和value可以是任意引用类型的数据,会封装到HashMap$Node对象中key不允许重复,原因和hashset一样, 指定重复的key相当于替换value是可以重复的public class MapDemo01 { public static void main(String[] args) { Map map = new HashMap(); map.put("no1", "l.原创 2021-03-26 01:49:23 · 102 阅读 · 0 评论 -
java HashSet
public class HashSetDemo02 { public static void main(String[] args) { /** * 底层是 HashMap * public HashSet() { * map = new HashMap<>(); * } */ HashSet hashSet = new HashSe原创 2021-03-25 20:05:03 · 72 阅读 · 0 评论 -
java 数组链表模拟
public class HashSetStructure { public static void main(String[] args) { // 模拟一个HashSet的底层(HashMap 的底层结构) // 1.创建一个数组,数组的类型是Node[] // 2.有些人, 直接把 Node[] 数组称为 表 Node[] nodes = new Node[16]; Node ll = new Node("ll"原创 2021-03-25 14:59:19 · 123 阅读 · 0 评论 -
java Set
无序(添加和取出的顺序不一致),没有索引不允许重复元素,所以最多包含一个null和List接口一样,Set接口也是Collection接口的子接口,因此,常用方法和Collection接口一样set接口的遍历方式迭代器增强for不能使用索引的方式来获取(普通for)public class HashSetDemo { public static void main(String[] args) { // 不能存放重复的元素, 元素是无序的, /.原创 2021-03-25 14:57:15 · 63 阅读 · 0 评论 -
java ArrayList和LinkedList
底层架构增删的效率改查的效率ArrayList可变数组较低 数组扩容较高LinkedList双向链表较高,通过链表追加较低如果我们改查的操作较多,学则ArrayList如果我们增删的操作较多,选择LinkedList一般来说,在程序中,80%-90%都是查询,因此大部分情况下会选择ArrayList在一个项目中,根据业务灵活选择,也可以是这样,一个模块使用ArrayList,另一个模块使用LinkedList...原创 2021-03-25 13:45:26 · 87 阅读 · 0 评论 -
java LinkedList
LinkedList实现了双向链表和双端队列特点可以添加任意元素(元素可以重复),包括null线程不安全,没有实现同步LinkedList底层维护了一个双向链表LinkedList中维护了两个属性first和last分别指向首节点和尾节点每个节点(Node对象),里面又维护了prev,next,item三个属性,其中通过prev指向前一个,通过next指向后一个节点,最终实现双向链表所以LinkedList的元素的添加和删除,不是通过数组完成的,相对效率较高public class Lin.原创 2021-03-25 13:39:25 · 311 阅读 · 0 评论 -
java Vectory 和 ArrayList 比较
底层架构版本线程安全(同步)效率扩容倍数ArrayList可变数据jdk1.2不安全,效率高如果是无参,默认10,满后,按1.5倍扩容如果指定大小,满后,也是1.5倍,Vectory可变数组jdk1.0安全,效率不高如果是无参,默认10,满后,就按2倍扩容如果指定大小,则每次直接按2倍扩容...原创 2021-03-25 11:13:47 · 128 阅读 · 0 评论 -
java Vectory
Vector底层是一个对象数组protected Object[] elementData;Vector 是线程同步的,即线程安全,Vector类的操作方法带有synchronizedpublic synchronized boolean add(E e) { modCount++; add(e, elementData, elementCount); return true;}在开发中,需要线程同步安全时,考虑使用Vector...原创 2021-03-25 11:04:43 · 175 阅读 · 0 评论 -
java ArrayList
ArrayListArrayList是由数组来实现数据存储的ArrayList基本等同于Vector,除了ArrayList是线程不安全的(执行效率高).在多数情况下,不建议使用ArrayListArrayList中维护了一个Object类型的数组elementData.transient 表示该属性不会被序列化transient Object[] elementData;当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData容量为0,第1次添加,则扩容elem原创 2021-03-24 23:58:18 · 72 阅读 · 0 评论 -
java 集合
可以动态保存多个任意对象提供了一系列方便的操作对象的方法: add,remove,set,get等使用集合添加,删除元素比数组方便单列集合双列集合原创 2021-03-24 16:22:04 · 84 阅读 · 0 评论 -
java 字符串练习
public class StringHomework04 { public static void main(String[] args) { String s1 = "惠普"; HP hp1 = new HP(s1); HP hp2 = new HP(s1); // false System.out.println(hp1 == hp2); // false System.out.pr原创 2021-03-24 15:25:46 · 171 阅读 · 0 评论 -
java 字符串 and 异常 练习
public class StringHomework02 { public static void main(String[] args) { try { String abc_def_ghi = printName("abc def ghi"); // ghi,abc .D System.out.println(abc_def_ghi); } catch (RuntimeException e原创 2021-03-24 14:28:12 · 85 阅读 · 0 评论 -
java用户注册信息校验
public class Homework09 { public static void main(String[] args) { String name = "jack"; String pwd = "123456"; String email = "ll@ll.com"; try { userRegister(name, pwd, email); System.out.println原创 2021-03-24 14:12:44 · 785 阅读 · 0 评论 -
java 字符反转练习 带错误处理
public class HomeWork01 { public static void main(String[] args) { String str = "12345678"; // 17654328 try { System.out.println(reverse(str, 1, 6)); } catch (Exception e) { System.out.println(e.g原创 2021-03-24 13:33:33 · 92 阅读 · 0 评论 -
java 日期时间类 Date Calendar LocalDateTime Instant
Datepublic class Date01 { public static void main(String[] args) throws ParseException { Date date = new Date(); // Wed Mar 24 10:24:45 CST 2021 System.out.println(date); // 日期格式化 SimpleDateFormat simpleDateFor原创 2021-03-24 12:08:35 · 133 阅读 · 0 评论 -
java BigInteger BigDecimal
BigIntegerpublic class BigIntegerDemo { public static void main(String[] args) { // 需要处理很大的数,long不够用 long l = 999999999999999999L; // 使用BigInteger BigInteger bigInteger = new BigInteger("9999999999999999999999999999999原创 2021-03-24 10:13:51 · 79 阅读 · 0 评论 -
java System类
exit 退出当前类arraycopy: 赋值数组元素currentTimeMillens: 返回当前时间距离1970-01-01的时间差gc:运行垃圾回收机制 System.gc();原创 2021-03-24 09:28:29 · 75 阅读 · 0 评论 -
java 数组排序 Comparator
public class HomeWork01 { public static void main(String[] args) { Book[] books = new Book[4]; books[0] = new Book("红楼梦", 100d); books[1] = new Book("金瓶梅", 200d); books[2] = new Book("青年文摘", 5d); books[3] = new B原创 2021-03-24 09:24:50 · 631 阅读 · 0 评论 -
java 定制排序
public class ArraySortCustom { public static void main(String[] args) { int[] arr = {1, -1, 8, 0, 9}; // bubbleSort(arr); bubbleSort2(arr, new Comparator() { @Override public int compare(Object o1, Objec原创 2021-03-23 16:09:07 · 346 阅读 · 0 评论 -
java Arrays
public class ArrayMethod01 { public static void main(String[] args) { Integer[] integers = {1, 3, 9, 2, 5,}; // 直接打印输出地址 // [Ljava.lang.Integer;@58ceff1 System.out.println(integers); // 遍历数组1 // 13925原创 2021-03-23 15:37:16 · 85 阅读 · 2 评论 -
java Match类常用方法
abs 绝对值pow 求幂ceil 向上取整floor 向下取整round 四舍五入sqrt 开平方random 求随机数,返回[0-1)之间的随机数max 求两个数的最大值min 求两个数的最小值练习 public static void main(String[] args) { // 求2到9之间的随机数 for (int i = 0; i < 100; i++) { System.out.println((i.原创 2021-03-23 14:55:22 · 1180 阅读 · 0 评论 -
java String StringBuffer 和 StringBuilder 比较
StringBuilder和StringBuffer非常类似,均代表可变的字符序列,而且方法也一样String: 不可变字符序列,效率低,但是复用率高StringBuffer: 可变字符序列,效率高(增删),线程安全StringBuilder: 可变字符序列,效率最高,线程不安全String使用注意说明 // 创建了一个字符串 String s = "a"; // 实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串 s + "b"(也就是"ab").原创 2021-03-23 14:09:03 · 80 阅读 · 0 评论 -
java StringBuild
一个可变的字符序列,此类提供一个与StringBuffer兼容的API.但不保证同步(线程安全),该类被设计用作StringBuffer的一个简单替换,用在字符串缓冲区被单个线程使用的时候.如果可能,优先建议使用StringBuilder,因为速度比StringBuffer快.public class StringBuilder01 { public static void main(String[] args) { // 1.StringBuilder 继承 Abstract.原创 2021-03-23 13:41:51 · 332 阅读 · 0 评论 -
java StringBuffer
StringBuffer的直接父类是 AbstractStringBuilderStringBuffer`实现了Serializable,即StringBuffer`的对象可以串行化在父类中AbstractStringBuilder有属性byte[] value,不是final该value数组存放字符串内容,因此是存放在堆中的,而不是常量池StringBuffer 是一个final类,不能被继承String 和 StringBuffer比较String保存的是字符串常量,里面的值不能更改,.原创 2021-03-23 11:59:31 · 165 阅读 · 1 评论 -
java String类
String对象用于保存字符串,也就是一组字符序列字符串常量对象是用双引号括起来的字符序列,例如: “java”字符串的字符使用Unicode字符编码,一个字符(不区分汉字还是汉字)占2个字节String类常用构造方法public class StringDemo01 { public static void main(String[] args) { // String 类实现了接口 Serializable => String 可以串行化:可以在网络传输 .原创 2021-03-22 16:36:19 · 86 阅读 · 0 评论 -
java 包装类
有了类的特点,就可以调用类中的方法|基本数据类型|包装类 ||–|--||boolean |Boolean ||char|Character||byte|Byte||short|Short||int|Integer||long|Long||float|Flaot||double|Double|原创 2021-03-22 14:20:33 · 96 阅读 · 1 评论 -
java throw和throws的区别
简介位置后面跟的东西throws异常处理的一种方式方法声明处异常类型throw手动生成异常对象的关键字方法体中异常对象原创 2021-03-22 11:36:18 · 80 阅读 · 0 评论 -
java 自定义异常
自定义异常的步骤自定义异常类名 继承Exception或RuntimeException如果继承Exception,属于编译异常如果继承RuntimeException,属于运行异常public class CustomExcception { public static void main(String[] args) { int age = 180; // if (!(age >= 18 && age <=原创 2021-03-22 11:33:39 · 179 阅读 · 0 评论 -
java throws 异常处理
如果一个方法中可能发生异常,但不能确定如何处理这种异常,则此方法应显示的声明抛出异常(throws),表示该方法将不对这些异常进行处理,而由该方法的调用者负责处理在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类public class THrows01 { public static void main(String[] args) { } public void f1() throws Null.原创 2021-03-22 11:02:49 · 473 阅读 · 0 评论 -
java try-catch异常处理
如果异常发生了,则异常发生后面的代码不会执行,直接进入catch块如果异常没有发生,则顺序执行try的代码块,不会进入catch如果希望不管是否发生异常,都执行某段代码,比如关闭连接,释放资源等,则使用finalllypublic class TryCatchDetail01 { public static void main(String[] args) { try { String str = "123a"; int a .原创 2021-03-21 16:54:25 · 516 阅读 · 2 评论 -
java 异常(Exception)
java语言中,将程序执行中发生的不正常情况称为"异常"执行过程中所发生的异常事件可分为两类:Error(错误):Java虚拟机无法解决的严重问题.如:JVM系统内部错误,资源耗尽等情况.如此: StackOverflowError[栈溢出]和OOM(out of memory),Eoor是严重错误,程序会本崩溃Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理.例如空指针访问,视图读取不存在的文件,网络连接中断等等,Exception分为两大类:运行原创 2021-03-20 17:51:32 · 256 阅读 · 0 评论 -
java 编程思想1 涉及 接口多态 单例模式
/** * 接口 交通工具 */public interface Vehicles { public void work();}/** * 交通工具 马 */public class Horse implements Vehicles{ @Override public void work() { System.out.println("骑马"); }}/** * 交通工具 船 */public class Boat implem原创 2021-03-20 14:37:49 · 106 阅读 · 0 评论 -
java JDK元注解
JDK 的元注解用于修饰其它的注解@Retention指定注解的作用范围SOURCECLASSRUNTIME@Target指定注解可以在哪些地方使用@Documented指定该注解是否会在javadoc体现@Inherited子类会继承父类注解原创 2021-03-20 11:59:09 · 109 阅读 · 0 评论