- 博客(17)
- 收藏
- 关注
原创 String类
String类特点①String类被final关键字修饰,意味着String类不能被继承,并且它的成员方法都默认为final方法;字符串一旦创建就不能再修改。②String类实现了Serializable、CharSequence、 Comparable接口。③String实例的值是通过字符数组实现字符串存储的。2.String相关字符型常量和字符串常量的区别形式上: 字符常量是单引号引起的一个字符 字符串常量是双引号引起的若干个字符含义上: 字符常量相当于一个整形值(ASCII值),可以.
2021-08-27 10:19:58
161
1
原创 类和对象,继承多态,抽象类接口总结
一、 面向对象的三大特征封装:封装就是把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法。为什么要封装:隐藏一个类里不需要向外界提供的实现细节。如何封装:利用权限修饰符来描述方法体或属性。public修饰的属性和方法外部类可以直接访问private修饰的属性和方法为该类所特有,在其它类中都不能直接访问protected可以被同一个包的类以及其他包中的子类访问default表示没有修饰符修饰,只有同一个包的类能访问继承:继承就是使用已存在的类作为基础,实现代码复用,并且可
2021-08-19 15:00:18
279
原创 类加载过程
装载阶段把.class字节码文件从各个来源通过类加载器装入内存中字节码来源:一般的加载来源包括从本地路径下编译生成的.class文件,从jar包中的.class文件,从远程网络,以及动态代理实时编译类加载器:一般包括启动类加载器,扩展类加载器,应用类加载器,以及用户的自定义类加载器。Boostrap ClassLoader 启动类加载器 jre/lib/.*jar →try.jarExt ClassLoader 扩展
2021-06-01 20:23:19
87
原创 单例模式的几种实现
单例模式,顾名思义就是只有一个实例,并且它自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。所以单例模式的特点可以总结为:单例类只能有一个实例单例类必须自己创建自己唯一的实例单例类必须给所有其他对象提供这一实例为什么要用单例模式实际编程应用场景中,有一些对象其实我们只需要一个,比如线程池对象、缓存、系统全局配置对象等。这样可以就保证一个在全局使用的类不被频繁地创建与销毁,节省系统资源。单例模式的实现饿汉式—静态常量方式(线程安全)
2021-06-01 20:03:44
128
原创 Http简介(关于HTTP请求GET和POST的区别)
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议),用于万维网(www:World Wide Web)服务器传输超文本到浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)一、HTTP工作原理HTTP消息结构:一个HTTP请求报文由请求行(request line)请求头(header)空行和请求数据四部分构成请求行由请求方法字段,URL字段和HTTP协议版本字段3个字段构成。例如:GET /index.
2021-05-28 18:40:55
1748
原创 多线程
一、概念:1、程序:程序是为完成特定任务,用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。2、进程:进程是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程,有他自身的产生、存在和消亡的过程。这个过程即是进程的生命周期。3、线程:进程进一步细化为线程,是一个程序内部的一条执行路径,每个线程各自有一个虚拟机栈和一个程序计数器。4、并行与并发并行:多个CPU同时执行多个任务并发:一个CPU同时执行多个任务(多个任务同时抢占cpu)二、线程的创建:1、通过java.
2021-02-24 17:05:21
81
原创 HashMap
1、哈希表散列表,是根据关键码值(Key)进行访问的数据结构,也就是说,通过将Key映射到表中一个位置来获取记录,加快查找的速度,这个映射函数叫做撒案列函数,存放记录的结构称之为散列表寻址容易,删除插入也容易的数据结构通常以下几种方式构造哈希函数1)直接定址法 key address(key) = a*key + b2)平方取中法 key 108 109 110 = 108^2 109^2 110^23)折叠法 key -> 拆分为几部分 区域号-书架号-图书编号4)除留取余
2020-11-11 17:14:54
101
原创 MyArrayDeque
Queue接口ArrayDeque -》栈add(E)/offer(E)remove()/poll()elemtent()/peek()Deque接口 双端队列Queue Dequeadd(E) addLast(E)offer(E) offerLast(E)remove() removeFirst()poll() pollFirst()element() getFirst()peek() peekFirst()Stack
2020-11-11 16:56:02
135
1
原创 MyLinkedList
LinkedList底层基于双向链表实现,它和基于数组的list相比,在内存中的空间是不连续的作为list使用,也可以作为queue使用class MyLinkedList<E>{ private int size; //链表的元素个数 private Node<E> first; //指向链表的第一个元素 private Node<E> last; //指向链表的最后一个元素 class Node<E>{
2020-11-11 16:45:22
171
原创 迭代器接口
Iterator 隐藏集合类的底层实现,通过hasNext和next方法得到集合当中的对象iterator() 返回Iterator对象hasNext() 判断当前集合是否含有下一个可迭代的元素next() 返回当前集合下一个可迭代元素class MyIterator<E> implements Iterable{ private E[] elements;//存放元素的容器 private int size; //存放元素的个数 publ.
2020-11-11 16:39:11
129
原创 MyArrayList
ArrayList 底层基于数组,数组在内存中是连续分配的地址空间,对数组的升级,长度是动态的面试题1:ArrayList和数组的区别与联系1)回答数组的优点,引出缺点(数组插入删除比较麻烦、数组的长度是固定)2)ArrayList的优势(是对数组的升级,是一个动态的数组,提供了一些方法可以直接操作)自定义ArrayList,提供了add(E value)/remove(E value)/set(index,value)/get(index)/contains(value)/size()/isE
2020-11-11 16:35:31
391
原创 HashMap、HashTable和ConcurrentHashMap的区别
HashTableHashMap继承父类的不同DictionaryAbstractMap都同时实现了map、Cloneable(可复制)、Serializable(可序列化)这三个接口都同时实现了map、Cloneable(可复制)、Serializable(可序列化)这三个接口默认容量1116Table的初始化时机构造函数中初始化第一次put并发操作使用同步机制,实际应用程序中,仅仅是Hashtable本身的同步并不能保证程序在并发操作下的正...
2020-11-11 16:09:24
358
原创 mysql基础
mysql基础一、数据库基础1. 什么是数据库:存储数据的仓库。数据:数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。在计算机系统中,数据以二进制信息单元0,1的形式表示。2.数据库的作用:方便数据的存储和管理。3.数据库的使用场景:有数...
2020-03-01 17:28:57
205
原创 Java多态
多态:一个函数名根据对象不同对应不同实现1)静多态(编译期多态)(静态绑定)→ 函数重载重载条件:在一个类,函数名相同,参数列表不同2)动多态(运行期多态)(动态绑定)发生动态绑定的条件(1)继承(2)重写(3)向上造型(基类的引用 引用的派生类的对象)向上造型Animal a = new Cat();//是一个Object o = new Integer(10);People...
2019-11-25 20:39:55
129
原创 Java内部类
内部类:1. 实例内部类2. 静态内部类实例内部类和静态内部类区别(实例内部类相比静态内部类开销在哪?)实例内部类包含两个this(指向当前对象,外部类对象的this)静态内部类包含一个this(指向当前对象)3. 匿名内部类:4. 局部内部类:向上造型:基类(基接口)引用 引用派生类对象(实现该接口的类对象)访问修饰符:1)修饰成员:public 默认 protected...
2019-11-25 20:35:34
106
原创 Java类加载
类加载过程装载阶段:类加载器Boostrap ClassLoader 启动类加载器 jre/lib/.*jar→rt.jar ⇩尝试加载Ext ClassLoader 扩展类加载器 jre/lib/ext/*.jar⇧找之前是否加载过类,如果加载过,将加载产物Class返回。如果没有加载过,依次在父...
2019-11-25 20:28:25
100
原创 Java异常处理
java异常异常处理(一般只针对编译期异常)-> 五个关键字1. try:一个try块对应一个或者多个catch块注意:1)假设当前try块中存在多条可能会发生异常的代码A,B,C 三条语句,如果A发生异常,此时B,C语句不会被执行到。2)try块尽量避免嵌套2. catch:尽量避免过细划分异常注意:catch(NullPointerException){ //先关...
2019-11-25 19:52:27
91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人