自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(143)
  • 问答 (7)
  • 收藏
  • 关注

原创 OutOfMemoryError内存溢出和StackOverFlowError栈溢出及解决方法

线程的堆栈存储 线程局部原始数据类型、变量、对象的引用、返回值。如果线程堆栈大小超出分配的内存限制,就会出现栈溢出错误。内存溢出指堆上存储的东西大于分配的内存大小。堆上存放数组、对象等数据。64位电脑默认栈大小为 1024k=1m。可以修改为-Xss2m。我这里整体配置的是 1024m,可以修改-Xmx=2048m。这里用递归调演示错误。这里用数组演示错误。

2023-08-30 11:19:09 211

原创 JVM 内存结构

虚拟机执行的本地方方法, native 方法,java的作用范围达不到,回去调用底层c/c++语言的库。8 种基本数据类型 + 对象的引用+实例方法(虚拟机执行de的java方法)存储实例对象,例如 new 出来的对象信息 A a1 = new A()每个线程的都有自己的堆栈信息,线程结束了,栈也就释放了。存储静态变量(静态方法、变量、代码块)、常量池、类信息。4、本地方法栈(线程隔离)5、程序计数器(线程隔离)3、虚拟机栈(线程隔离)1、方法区(线程共享)2、堆信息(线程共享)

2023-08-10 15:09:24 504

原创 网络知识面试题

安全性(1)get 请求是不安全的,因为在传输过程,数据被放在请求的 url 中;post 请求的所有操作对用户来说都是不可见的。但是这种说法也不是绝对的,也可以在 get 请求加上 request body,给 post 请求带上 url 参数。请求长度限制(2)get 请求提交的 url 中的数据最多只能是几千个字节,这个限制是浏览器或者服务器给添加的,http协议并没有对 url 长度进行限制,目的是为了保证服务器和浏览器能够正常运行,防止有人恶意发送请求;

2023-08-10 14:43:48 166

原创 网络编程--模拟HTTP服务器

这里只是简单的按照 HTTP 协议来构造数据。

2023-07-26 11:21:41 607

原创 TCP/IP 五层协议模型

"数据"部分就是具体的内容。然后,把整个UDP数据包放入IP数据包的"数据"部分,而前面说过,IP数据包又是放在以太网数据包之中的,所以整个以太网数据包现在变成了下面这样。

2023-07-25 09:22:11 1418

原创 java异常

我自己实践了一下,没有明白按照这个多态的原理,为什么父类没有抛出异常时,子类可以抛出异常。异常的继承关系图,Exception 是所有异常的基类。子类重写父类方法时如果要抛出异常,只能抛出比父类异常更宽泛的异常。如需上层处理异常时,则可以将异常抛出,其他情况需要处理异常。指必须在编写程序时预先处理的异常,如果不处理编译器会报错。因为不需要预先处理,也称『未受检异常』、『非受控异常』因为需要预先处理,也称『受检异常』、『受控异常』注意:异常的产生是 new 出异常对象,所以。异常就是程序执行时不正常的现象。

2023-07-24 12:30:31 43

原创 java多线程常见面试题

守护线程和用户线程用户线程就是正常意义上的线程,我们执行程序时默认的都是用户线程。守护线程是指在程序运行的后台提供的通用线程,顾名思义,守护线程就是用户线程的守护者,基本构造和用户线程是一样的,除了一点:当 jvm 关闭后守护进程才关闭。也就是说只要还存在用户线程时,守护线程就一定在。例如:将一个线程设置为守护线程的方法就是在调用start()启动线程之前调用对象的setDaemon(true)方法。守护线程的一个典型的例子就是垃圾回收器。

2023-07-20 17:28:30 175

原创 java 线程安全(二)synchronized

中解释了线程安全问题。

2023-07-19 15:59:04 366

原创 线程池学习(六)线程池状态转化

等待线程池完成关闭,在设置的时间timeout内如果线程池完成关闭,返回true, 否则返回fals。等待当前工作队列中的剩余任务全部执行完成之后,才会执行关闭。调用后、状态转为SHUTDOWN。立即关闭线程池的方法,此方法会打断正在执行的工作线程。清空当前工作队列中的剩余任务,返回的是尚未执行的任务。

2023-07-18 18:56:14 361

原创 线程池学习(五)线程工厂、线程池工厂

前面几期的学习中,我已经初步会使用线程池了,也已经使用了 Executors。这里介绍下 ThreadFactory 的使用。

2023-07-18 17:37:50 688

原创 线程池学习(四)任务调度

线程池有几个重要的属性,核心线程数,最大线程数,阻塞任务队列。

2023-07-18 17:00:42 376

原创 线程池学习(三)Future接口

我们借钱(提交任务)时会写一个欠条(Future 相当于一个欠条),我们可以用欠条去拿回欠款,真正还钱的是债主(执行任务的是 Executor )。

2023-07-18 16:11:46 382

原创 线程池学习(二)execute() 和 submit() 的区别

使用 execute 向线程池提交任务不能处理异常,未打印了task has Exception!使用 submit 向线程池提交任务可以处理异常,打印了task has Exception!

2023-07-17 18:31:44 291

原创 线程池学习(一)

如图:只要有新的任务,就会开辟线程。如图:最多只有3个线程同时进行。如图:最多启动3个线程执行任务。如图:周期性的执行任务。

2023-07-17 17:37:48 286

原创 java 线程安全问题(一)

可以使用 synchronized 关键字修饰方法,该方法被称为同步方法。在多线程环境下,同一时间只有一个线程可以执行该方法。其他线程需要等待当前线程执行完毕后才能进入该方法。例如 Java 容器 Hashtable 源码中的些方法都是用synchronized 修饰的,也就是达到了线程安全。如果发生下面情况: m = 0 时 线程A和线程B 都执行 m = m+1 但是结果还是=1.这是因为 m = m +1;的(要么都成功,要么都失败)(1)从主存中取出 m。(2)计算 m +1。

2023-07-12 16:54:37 209

原创 java 线程 Thread 类介绍

java 中用Thread 类用来描述线程,包含一些线程的基本信息,构造方法和 run 方法。

2023-07-11 18:41:55 262

原创 java 数据结构常见面试题

因为 Set 的底层结构是 Map ,所以三者的特点和使用场景可以参考HashMap 和 TreeMap 和 LinkedHashMap ,需要注意的是,Set 中元素是不允许重复的(Set 的值是底层时存储在 Map 的 Key 中的,key 是不能重复的)。其中 Collection 是所有集合继承的最顶层接口,其中声明的方法有对集合的操作的 增删改查等,所有具体的集合类都继承这个接口。强调:使用map接口的实现类时,切记不要修改key的属性值,否则就会找不到key 所对应的 value值。

2023-07-05 16:56:46 1615

原创 HashSet、TreeSet、LinkedHashSet 学习

我们都知道 LinkedHashSet 底层结构是 LinkedHashMap,但是单从 LinkedHashSet 的定义中看不出两者关系,最核心的主要时父类 HashSet 的私有构造方法.底层原理:使用NavigableMap,但NavigableMap只是一个接口,最终是使用TreeMap。同理,很多方法都是使用的 TreeMap。

2023-07-05 15:54:09 232

原创 LinkedHashMap 学习了解

【代码】LinkedHashMap 学习了解。

2023-06-30 19:46:34 432

原创 TreeMap学习

TreeMap 继承了 AbstractMap,AbstractMap 实现了 Map 接口。1、Person 类未实现 Comparable 接口时报错 Person cannot be cast to java.lang.Comparable。2、自然排序,Person 类实现 Comparable 接口,重写 compareTo()方法按照身高升序排序。3、定制比较器,实现匿名类重写 compare()方法按照身高降序排序。要求 key必须可排序, Person 按照身高进行排序。

2023-06-30 18:33:11 208

原创 Java 集合继承关系图

一个独立元素的序列,衍生的2个子类接口:一组成对的“健值对”对象,允许按照健查找值。

2023-06-28 18:06:41 171

原创 java 设计模式--创建者模式

ConcreteBuilder 创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。:将复杂对象的创建过程分解在不同的方法中,不同的创建过程组装成不同对象。具体建造者 ConcreteBuilder:实现Builder抽象接口,构建和装配各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。抽象建造者 Builder:相当于建筑蓝图,声明了创建 Product 对象的各个部件指定的抽象接口。:如果对象的构造的入参十分复杂时,构造对象需要转为链式写法时。

2023-06-21 10:00:58 831

原创 java static 关键字

java static 关键字

2023-06-14 18:12:37 566

原创 java final 关键字

java final 关键字

2023-06-14 10:08:30 157

原创 模拟实现 LinkedList

模拟实现 LinkedList

2023-06-10 08:32:06 55

原创 java 泛型

泛型就是将数据类型参数化,例如我们实现一个存储对象的容器时,并不是直接定义好只能存储一种类型,好的办法就是定义时将类型参数化,也就是泛型,在真实使用时再传入真正的参数,这种参数化类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

2023-06-10 07:58:57 1044

原创 迭代器遍历ArrayList

使用迭代器遍历 ArrayList

2023-05-31 19:30:38 1234

原创 ArrayList 使用

前2种支持可变参数比较灵活,第3种常用来使用已有的容器来初始化,运行更快。

2023-05-30 16:57:20 72

原创 如何分享chrome中的拓展程序

参考https://blog.csdn.net/weixin_43615992/article/details/103499693不需要打包压缩发送(本人尝试后有问题),直接将文件件隔空传送发送

2021-05-12 23:59:44 331

原创 json sechma 数据格式校验

json sechma 格式比对sechma 使用介绍:http://xaber.co/2015/10/20/JSON-schema-%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B%E6%96%87%E6%A1%A3/https://json-schema.org/understanding-json-schema/index.htmlsechma 格式在线比较:http://json-schema-validator.herokuapp.com/index.jspse

2021-02-06 19:37:07 347

原创 租房注意事项

租房 note:一、【安全】1、房源是否靠谱 自如、贝壳、中介、个人转租2、房子本身安全 隔断房?墙体晃动?3、人身安全 其他租户性别 & 工作 & 宠物 小区安保、房屋门锁 等4、合同 条款明细 二、【时间】1、短租、长租?三、【费用】1、房租 月付、季付、半年付?2、其他费用 中介费?服务费?卫生费?取暖费?网费? 水电燃气?3、押金 可退条件?转租时如何处理? 四、【环境】1、交通 公司距离?地铁、公交2、噪音 是否靠近马路、是否施

2020-12-14 23:08:45 152

原创 自己的 Git基本使用

Git 是什么?分布式版本控制系统,多人协作开发,SVN集中式版本控制系统git 仓库的 3 个组成部分工作区(Work Directory)、暂存区(Stage)、历史记录区(History)1、工作区我们平时的编辑工作都是在 工作区完成的2、暂存区临时区域,里面存放提交文件的快照信息3、历史记录区git commit 后的区域git 工作流程1、在工作目录中修改内容2、将修改提交的文件进行快照,保存在暂存区3、提交修改,将保存在暂存区的文件永久的保存在 git 目录下gi

2020-11-14 15:47:51 184

原创 Java ArrayList & LinkedList

参考:https://blog.csdn.net/weixin_42468526/article/details/81178698https://www.cnblogs.com/softidea/p/6410680.htmlhttps://www.cnblogs.com/wangwudi/p/11912632.htmlArrayListArrayList 是实现了动态数组,动态的含义就是大小可变特性:1、支持随机访问,查询效率高2、增加删除需要移动元素,效率低3、自动扩容的特点4、支持 元

2020-11-14 11:55:43 112 1

原创 HashMap

参考:https://www.cnblogs.com/zengcongcong/p/11295349.htmlhttps://zhuanlan.zhihu.com/p/79507868http://baijiahao.baidu.com/s?id=1665667572592680093&wfr=spider&for=pcHashMap 就是一个用来存储 键值对 的集合一、HashMap 整和了数组 & 链表的优点数组的特点:1、优点:查询块–在内存中一块连续的存储空间

2020-11-14 10:29:08 1320

原创 数据库 事务理解

参考:https://www.cnblogs.com/NanoDragon/p/12650049.htmlhttps://zhuanlan.zhihu.com/p/117476959https://www.zhihu.com/question/31346392一、什么是事务?一组原子性的查询语句,或者说一个独立的工作单元,就是如果要执行这个单元,要吗全部成功,要么全部失败,中间如果有一部分无法执行,就整体都不会执行。用我们比较通俗的语言来解释一下,例如两张银行卡之间进行转账操作,我们简单理解分为

2020-11-12 22:10:32 109

原创 数据库触发器 和 存储过程

存储过程见上一篇文章一、什么是触发器触发器是指在执行指定表修改操作时强制执行的存储过程(可以理解为一种特殊的存储过程)通常用于强制执行不同表之间相互关联的数据的的完整性或者一致性因为是在创建表的时候就创建了,所以是不可绕过的,可以用于一些复杂操作场景,用来完成数据完整性。二、分类1、DDL 数据定义触发器在发生【数据定义语言,如增加表、修改表、增加列、修改列】时执行例如:用来记录数据库的修改记录2、DML 数据操作触发器在发生【数据操作语言,如增加行、删除行、修改行】时执行例如:强制性

2020-11-12 21:04:17 632

原创 数据库存储器

参考: https://www.cnblogs.com/free-coder/p/4773691.htmlhttps://baike.baidu.com/item/%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/1240317?fr=aladdinhttps://www.cnblogs.com/NanoDragon/p/13532263.htmlMysql 存储过程什么是 存储过程存储过程即存储在数据库中的一组 sql 语句的集合,在启动时只编译一次,后面就直接调用即可

2020-11-12 21:02:43 595

原创 OkHttpClient 介绍

整体分为 5 步:创建 HttpClient 对象创建 请求 request 对象执行请求响应分析资源释放package com.maodou.autotest.utils;import okhttp3.Interceptor;import org.apache.http.client.HttpClient;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import okhttp3.*;import java.io.

2020-11-10 15:19:31 6854 1

原创 HttpClient 使用介绍

之前没有认真了解过 HttpClient 如何实现,现在有时间来整理一下使用及中间步骤介绍package com.maodou.autotest.utils;import com.maodou.autotest.Application;import org.apache.http.*;import org.apache.http.client.HttpClient;import org.apache.http.client.config.RequestConfig;import org.apa

2020-11-08 18:07:54 353

原创 maven POM 文件常用属性解释

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mav

2020-10-22 21:43:45 361

模拟实现 LinkedList 测试类

模拟实现 LinkedList 测试类

2023-06-10

模拟实现 LinkedList 测试类

模拟实现 LinkedList 测试类

2023-06-10

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

TA关注的人

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