Java基础
文章平均质量分 72
油屋impl
job not finish
展开
-
HashMap(整理)
HashMap底层是由散列表实现的。由此首先介绍散列表1、散列表数组是具有相同的数据类型且按一定次序排列的一组变量的集合体,数组在内存中的地址是连续的。优点随机访问性强(通过下标进行快速定位)查找速度快缺点插入和删除效率低(插入和删除需要移动数据)可能浪费内存(因为是连续的,所以每次申请数组之前必须规定数组的大小,如果大小不合理,则可能会浪费内存)内存空间要求高,必须有足够的连续内存空间。数组大小固定,不能动态拓展链表内存地址是散列、不连续的。数组静.原创 2021-03-17 14:26:18 · 480 阅读 · 0 评论 -
Serializable
1Serializable:序列化对象的生命周期常随着生成该对象的程序的终止而终止,有时候需要把内存中的各种对象状态(也就是实例变量,不是方法)保存下来并且可以在需要时再将对象恢复.虽然你可以用你自己的方法保存对象的状态,但是java提供了一种应该比我们好的保存对象状态的机制,那就是序列化。什么情况下需要序列化:当你想要把内存中的对象状态保存到一个文件中或者数据中的时候当你想用套接字在网络上传送对象的时候当你想要通过RMI传输对象的时候注意事项:序列化时,只对对象的状原创 2021-01-23 19:59:55 · 180 阅读 · 0 评论 -
equals()与hashCode()若干问题
1====的作用是判断两个对象的地址是不是相等。即,判断两个对象是不试同一个对象。equals()equals() 的作用是 用来判断两个对象是否相等。equals()方法存在于Object类中,Object类是所有类的父类。public boolean equals(Object obj) { return (this == obj);}通过类是否覆盖equals()方法,将它分为2类:若某个类没有覆盖equals()方法,当它的通过equals()比较两个对象时,实际上原创 2021-01-21 17:33:11 · 51 阅读 · 0 评论 -
Lambda 表达式
Lambda表达式可以看做是一个匿名类。将一个Lambda表达式做为参数传递给方法,行为参数化,就实现了函数式编程。在没有Lambda之前,要实现函数式编程就需要使用匿名类,如果用Lambda会使得代码更加简洁、清晰。lambda表达式Lambda(其实就是希腊字母λ大写字符为Λ)就是没有名称的代码块,有形式参数列表和实现体可以作为方法的参数或者赋值给变量自身没有类型, 编译器会根据环境推断出其类型例如(int x,int y)-> {return x+y;};(int x,i.原创 2020-09-27 23:41:37 · 113 阅读 · 0 评论 -
java实现多线程
java中提供两种方式实现线程,继承java.lang.Thread类与实现java.lang.Runnable接口继承Thread类publicclass Thread implements Runnable {通过查看源码知道Thread类也是实现了Runnable接口实现Runnable接口@FunctionalInterfacepublic interface Runnable { /** * When an object implementing interf.原创 2020-09-27 23:20:27 · 297 阅读 · 0 评论 -
sleep(long millis, int nanos)
thread类中的sleep方法没有实现ns级别的睡眠public static void sleep(long millis, int nanos) throws InterruptedException { if (millis < 0) { throw new IllegalArgumentException("timeout value is negative"); } if (nanos < 0 |.原创 2020-09-23 00:23:50 · 858 阅读 · 0 评论 -
抽象类
抽象类在普通类的基础上扩充了一些抽象方法(0~n)的类(抽象类是普通类的超集),使用abstract关键字定义。抽象类不能直接产生实例化对象,因为抽象类是“半成品”,无法直接使用。不能直接new抽象方法使用abstract 关键字定义并且没有方法体的方法。抽象方法所在类一定是抽象类。抽象类的使用原则所有抽象类必须有子类 :(abstract与final不能同时出现,编译出错)如果子类不是抽象类 ,子类必须覆写抽象类(父类)的所有抽象方法。(子类是抽象类则可以不要求全部覆写)原创 2020-09-11 00:09:37 · 118 阅读 · 0 评论 -
System.out.println()源码分析
如何理解System.out.println() ?分析System源码package java.lang;public final class System {}System就是Java.lang包下一个类out public final static PrintStream out = null;public class PrintStream extends FilterOutputStream implements Appendable, Closeable{原创 2020-09-09 00:26:08 · 306 阅读 · 0 评论 -
多线程
概念进程计算机中已运行程序的实体。进程本身不会运行,是线程的容器。程序本身只是指令的集合,进程才是程序(那些指令)的真正运行。若干进程有可能与同一个程序相关系,且每个进程皆可以同步(循序)或不同步(平行)的方式独立运行。进程为现今分时系统的基本运作单位。1线程操作系统技术中的术语,是操作系统能够进行运算调度的最小单位。它被包涵在进程之中,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。并发运行并发运行实现并发技术相当复杂,最容原创 2020-09-05 00:26:18 · 58 阅读 · 0 评论 -
JAVA_反射
反射通过java反射机制,可以在程序中访问已经装载到JVM中的java对象的描述,实现访问、检测、修改描述java对象本身信息的功能。java 反射机制是在运行状态中,对任意一个类,都能知道这个类的属性和方法,对于任意一个对象,都能调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象方法的功能称之为 Java 语言的反射机制。Java 中的反射主要通过 Class 类提供方法实现。Java 中的 java.lang.reflect 包提供了对反射的支持,该包下的 Constru原创 2020-09-01 00:21:27 · 143 阅读 · 0 评论 -
IO流
流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。...原创 2020-08-31 00:05:00 · 145 阅读 · 0 评论 -
异常处理
异常分类Java语言按照错误严重性,从throwale根类衍生出Error和Exception两大派系Error(错误):程序在执行过程中所遇到的硬件或操作系统的错误。错误对程序而言是致命的,将导致程序无法运行。常见的错误有内存溢出,jvm虚拟机自身的非正常运行,calss文件没有主方法。程序本生是不能处理错误的,只能依靠外界干预。Error是系统内部的错误,由jvm抛出,交给系统来处理。EXCEPTION(异常):是程序正常运行中,可以预料的意外情况。比如数据库连接中断,空指针,原创 2020-08-29 23:43:56 · 88 阅读 · 0 评论 -
内部类
内部类: 所谓内部类就是在一个类内部进行其他类结构的嵌套操作。内部类的优点:内部类与外部类可以方便的访问彼此的私有域(包括私有方法、私有属性)。内部类是另外一种封装,对外部的其他类隐藏。内部类可以实现java的单继承局限。内部类的缺点:结构复杂。在Java中内部类主要分为成员内部类、静态内部类、方法内部类、匿名内部类成员内部类内部类可以访问他的外部类任意成员方法、变量内部类的成员只有在内部类的范围之内是可知的,不能被外部类引用内部类创建时需要使用外部类的对象来创建内部.原创 2020-08-26 23:58:46 · 81 阅读 · 0 评论 -
重写、重载、重构
重载百度百科定义overload可直译为重载,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。起源构造函数是一种特殊的函数,使用构造函数的目的是用来在对象实例化时初始化对象的成员变量。由于构造函数名字必须与类名一致,我们想用不同的方式实例化对象时,必须允许不同的构造方法同时存在,这就用到了重载。应用重载虽然起源于构造方法,但是在普通方法中也可以使用方法的重载。方法的重载就是在同一个类中允许同时存在多个同名原创 2020-08-25 00:00:15 · 378 阅读 · 0 评论 -
JAVA自带排序
排序方法1.基本类型数组排序,使用Arrays.sort()方法;2.排序对象列表List,使用Collection.sort()方法或者ArrayList自带的sort方法;注意使用时,应该将基本类型转化为对应的包装类。因为sort方法的入口参数是对象数组。重写排序方法实现Comparator接口重写compare方法。compare:记住返回的是二者的差值 Arrays.so...原创 2020-04-23 12:42:12 · 309 阅读 · 0 评论 -
位操作个人总结
位操作实现加减法工具&操作 、 << 左移位 用于求进位^操作 用于不进位加法原理1. 不进位加法运算 。2. 计算进位 。3. 把进位加上重复12操作,直到进位为0举例6+12二进制为0110+1100(0110^1100)=1010(0110&1100)<<...原创 2020-04-22 10:37:45 · 104 阅读 · 0 评论 -
JAVA位操作
JAVA位操作位操作基础基本的位操作符有与、或、异或、取反、左移、右移& | ^ ~ << >>在这6种操作符,只有取反是单目操作符,其它5种都是双目操作符。位操作只能用于整形数据。位操作符的运算优先级比较低,因为尽量使用括号来确保运算顺序。位操作还有一些复合操作符,如&=、|=、 ^=、«=、»=。位操作工具类BitSet...原创 2020-04-21 10:33:19 · 117 阅读 · 0 评论