自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 String类

String类特点 ①String类被final关键字修饰,意味着String类不能被继承,并且它的成员方法都默认为final方法;字符串一旦创建就不能再修改。 ②String类实现了Serializable、CharSequence、 Comparable接口。 ③String实例的值是通过字符数组实现字符串存储的。 2.String相关 字符型常量和字符串常量的区别 形式上: 字符常量是单引号引起的一个字符 字符串常量是双引号引起的若干个字符 含义上: 字符常量相当于一个整形值(ASCII值),可以.

2021-08-27 10:19:58 97 1

原创 类和对象,继承多态,抽象类接口总结

一、 面向对象的三大特征 封装:封装就是把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法。 为什么要封装:隐藏一个类里不需要向外界提供的实现细节。 如何封装:利用权限修饰符来描述方法体或属性。 public修饰的属性和方法外部类可以直接访问 private修饰的属性和方法为该类所特有,在其它类中都不能直接访问 protected可以被同一个包的类以及其他包中的子类访问 default表示没有修饰符修饰,只有同一个包的类能访问 继承:继承就是使用已存在的类作为基础,实现代码复用,并且可

2021-08-19 15:00:18 221

原创 类加载过程

装载阶段 把.class字节码文件从各个来源通过类加载器装入内存中 字节码来源:一般的加载来源包括从本地路径下编译生成的.class文件,从jar包中的.class文件,从远程网络,以及动态代理实时编译 类加载器:一般包括启动类加载器,扩展类加载器,应用类加载器,以及用户的自定义类加载器。 Boostrap ClassLoader 启动类加载器 jre/lib/.*jar →try.jar Ext ClassLoader 扩展

2021-06-01 20:23:19 60

原创 单例模式的几种实现

单例模式,顾名思义就是只有一个实例,并且它自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 所以单例模式的特点可以总结为: 单例类只能有一个实例 单例类必须自己创建自己唯一的实例 单例类必须给所有其他对象提供这一实例 为什么要用单例模式 实际编程应用场景中,有一些对象其实我们只需要一个,比如线程池对象、缓存、系统全局配置对象等。这样可以就保证一个在全局使用的类不被频繁地创建与销毁,节省系统资源。 单例模式的实现 饿汉式—静态常量方式(线程安全)

2021-06-01 20:03:44 89

原创 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 1680

原创 多线程

一、概念: 1、程序: 程序是为完成特定任务,用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 2、进程: 进程是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程,有他自身的产生、存在和消亡的过程。 这个过程即是进程的生命周期。 3、线程: 进程进一步细化为线程,是一个程序内部的一条执行路径,每个线程各自有一个虚拟机栈和一个程序计数器。 4、并行与并发 并行:多个CPU同时执行多个任务 并发:一个CPU同时执行多个任务(多个任务同时抢占cpu) 二、线程的创建: 1、通过java.

2021-02-24 17:05:21 51

原创 HashMap

1、哈希表 散列表,是根据关键码值(Key)进行访问的数据结构,也就是说,通过将Key映射到表中一个位置来获取记录,加快查找的速度,这个映射函数叫做撒案列函数,存放记录的结构称之为散列表 寻址容易,删除插入也容易的数据结构 通常以下几种方式构造哈希函数 1)直接定址法 key address(key) = a*key + b 2)平方取中法 key 108 109 110 = 108^2 109^2 110^2 3)折叠法 key -> 拆分为几部分 区域号-书架号-图书编号 4)除留取余

2020-11-11 17:14:54 77

原创 MyArrayDeque

Queue接口 ArrayDeque -》栈 add(E)/offer(E) remove()/poll() elemtent()/peek() Deque接口   双端队列 Queue    Deque add(E)    addLast(E) offer(E)    offerLast(E) remove()    removeFirst() poll()  pollFirst() element()  getFirst() peek()  peekFirst() Stack  

2020-11-11 16:56:02 89 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 150

原创 迭代器接口

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 103

原创 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 370

原创 HashMap、HashTable和ConcurrentHashMap的区别

HashTable HashMap 继承父类的不同 Dictionary AbstractMap 都同时实现了map、Cloneable(可复制)、Serializable(可序列化)这三个接口 都同时实现了map、Cloneable(可复制)、Serializable(可序列化)这三个接口 默认容量 11 16 Table的初始化时机 构造函数中初始化 第一次put 并发操作 使用同步机制,实际应用程序中,仅仅是Hashtable本身的同步并不能保证程序在并发操作下的正...

2020-11-11 16:09:24 324

原创 mysql基础

mysql基础 一、数据库基础 1. 什么是数据库:存储数据的仓库。 数据: 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。 数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。 在计算机系统中,数据以二进制信息单元0,1的形式表示。 2.数据库的作用:方便数据的存储和管理。 3.数据库的使用场景:有数...

2020-03-01 17:28:57 166

原创 Java多态

多态: 一个函数名根据对象不同对应不同实现 1)静多态(编译期多态)(静态绑定)→ 函数重载 重载条件:在一个类,函数名相同,参数列表不同 2)动多态(运行期多态)(动态绑定) 发生动态绑定的条件 (1)继承(2)重写(3)向上造型(基类的引用 引用的派生类的对象) 向上造型 Animal a = new Cat();//是一个 Object o = new Integer(10); People...

2019-11-25 20:39:55 106

原创 Java内部类

内部类: 1. 实例内部类 2. 静态内部类 实例内部类和静态内部类区别(实例内部类相比静态内部类开销在哪?) 实例内部类包含两个this(指向当前对象,外部类对象的this) 静态内部类包含一个this(指向当前对象) 3. 匿名内部类: 4. 局部内部类: 向上造型: 基类(基接口)引用 引用派生类对象(实现该接口的类对象) 访问修饰符: 1)修饰成员: public 默认 protected...

2019-11-25 20:35:34 77

原创 Java类加载

类加载过程 装载阶段: 类加载器 Boostrap ClassLoader 启动类加载器 jre/lib/.*jar→rt.jar ⇩尝试加载 Ext ClassLoader 扩展类加载器 jre/lib/ext/*.jar ⇧找之前是否加载过类,如果加载过,将加载产物Class返回。如果没有加载过,依次在 父...

2019-11-25 20:28:25 73

原创 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 62

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除