自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程

synchronized和volatile的区别是什么?volatile本质是在告诉jvm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取; synchronized则是锁定当前变量, 只有当前线程可以访问该变量,其他线程被阻塞住。volatile仅能使用在变量级别; synchronized则可以使用在变量、方法、和类级别的。volatile仅能实现变量的修改可见性,不能保证原子性;而synchronized则可以保证变量的修改可见性和原子性。volatile不会造成

2020-06-18 23:29:49 89

原创 多线程

ThreadLocal 是什么?有哪些使用场景?线程局部变量是局限于线程内部的变量,属于线程自身所有,不在多个线程间共享。Java 提供 ThreadLocal 类来支持线程局部变量,是一种实现线程安全的方式。但是在管理环境下(如 web 服务器)使用线程局部变量的时候要特别小心,在这种情况下,工作线程的生命周期比任何应用变量的生命周期都长。任何线程的局部变量一旦在工作完成后没有释放,Java 应用就存在内存泄漏的风险。synchronized 底层实验原理?synchronized 可以保证方法或者

2020-06-17 21:28:10 68

原创 多线程

什么是死锁死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者彼此通信而造成的一种阻塞现象,若无外力作用,他们都将无法推进下去。此时成系统处于死锁状态或系统产生了死锁,这些永远在相互等待的进程称为死锁进程。是操作系统层面的一个错误,是进程死锁的简称,最早在1965年由 Dijkstra 在研究银行家算法时提出的,它是计算机操作系统乃至整个并发程序设计领域最难处理的问题之一。怎么防止死锁死锁的四个必要条件互斥条件:进程对所分配到的资源不允许其他进程进行访问,若其他进程访问该资源,只能等待,直至

2020-06-16 19:52:01 174

原创 重定向和转发

forward 和 redirect 区别重定向的特点:redirect地址栏发生变化重定向可以访问其他站点(服务器)的资源重定向是两次请求。不能使用request对象来共享数据转发的特点:forward转发地址栏路径不变转发只能访问当前服务器下的资源转发是一次请求,可以使用request对象来共享数据...

2020-06-09 20:27:54 100

原创 多线程

线程池中 submit() 和 execute() 方法有什么区别?接收参数不一样submit 有返回值,而 execute 没有返回值submit 方便 Exception 处理在 java 程序中怎样保证多线程的运行安全?原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作(atomic,synchronized)可见性:一个线程对内存的修改可以及时的被其他线程看到(synchronized,volatile)有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察

2020-06-08 20:29:58 97

原创 IDEA自动导包

IDEA自动导包File --> Settings勾选标注第1个选项,IDEA 将在我们书写代码的时候自动帮我们导入需要用到的包。但是对于那些同名的包,还是需要手动 Alt + Enter 进行导入的勾选标注 第2个选项,IDEA 将在我们书写代码的时候自动帮我们优化导入的包,比如自动去掉一些没有用到的包。...

2020-06-08 19:49:39 166

原创 多线程

创建线程池有哪几种方式?newFixedThreadPool(int nThreads)创建一个固定的长度的线程池,每当提交一个任务就创建一个线程,知道达到线程池的最大数量,这时线程规模将不再变化,当线程当线程发生未预期的错误而结束时,线程池会补充一个新的线程。newCachedThreadPool()创建一个可缓存的线程池,如果线程池的规模超过了处理需求,将自动回收空闲线程,而当需求正驾驶,则可以自动添加新线程,线程池的规模不存在任何限制。newSingleThreadExecutor()

2020-06-05 20:54:03 204

原创 多线程

notify() 和 notifyAll() 有什么区别如果线程调用了对象的 wait() 方法,那么线程变回处于该对象的等待池中,等待池的线程不会去竞争该对象的锁。当有线程调用了对象的 notifyAll() 方法(唤醒所有的 wait 线程)或 notify() 方法(值随机唤醒一个 wait 线程),被唤醒的线程变回进入该对象的锁池中,锁池中的线程会去竞争该对象锁。也就是说,调用了 notift 后只要一个线程会有等待池进入锁池,而 notifyAll 将会对该对象等待池内所有的线程移动到锁池中

2020-06-04 21:20:21 104

原创 多线程

线程都有哪些状态新建:线程被创建出来就绪:具有CPU的执行资格,但是不具有CPU的执行权运行:具有CPU的执行资格,也具有CPU的执行权阻塞:不具有CPU的执行资格,也不具有CPU的执行权死亡:不具有CPU的执行资格,也不具有CPU的执行权sleep() 和 wait() 方法有什么区别sleep():方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到朽迈年时间结束后,线程进入就绪状态和其他线程一起竞争 cpu 的执行时间。因为 sleep()

2020-06-03 21:16:08 105

原创 多线程

创建线程的方式【1】 继承 Thread 类创建线程类创建Thread的子类,该子类重写 run 方法创建Thread类的子类对象启动线程 new Thread() { @Override public void run() { System.out.println("线程执行了"); } }.start();【2】通过 Runnable 接口创建线程类创建一个类实现 Runnable接口,重写接口中的 run 方法创建这个接口的子类对象创建 Thread 对象

2020-06-02 20:44:37 79

原创 多线程

并行与并发的区别并发并发 : 指应用能够交替执行不同的任务, 其实并发有点类似于多线程的原理, 多线程并非是如果你开两个线程同时执行多个任务, 执行, 就是在你几乎不可能察觉到的速度不断去切换这两个任务, 已达到“同时执行效果”, 其实并不是的, 只是计算机的速度太快, 我们无法察觉到而已.就类似于你, 吃一口饭喝一口水, 以正常速度来看, 完全能够看的出来, 当你把这个过程以n倍速度执行时…可以想象一下.并行并行 : 指应用能够同时执行不同的任务, 例:吃饭的时候可以边吃饭边打电话,

2020-06-01 21:30:19 69

原创 容器

迭代器 Iterator 是什么迭代器是一种设计模式,他是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”的对象,因为创建它的代价小Iterator 如何使用?有什么特点?Iterator 只能进行单项移动使用 iterator() 要求容器返回一个 Iterator 。第一次调用 Iterator 的 next() 方法是,返回序列的第一个元素使用 next() 方法获得序列中的下一个元素使用 hasNext() 方法检查序列中是否还存

2020-05-31 19:46:31 103

原创 容器

Array 和 ArrayList 的区别Array 可以容纳基本类型和对象,而 ArrayList 只能容纳对象Array 指定发小后不可变,而 ArrayList 大小可以改变Array 所提供的功能没有 ArratList 多哪些集合类线程是安全的vector:比 ArrayList 多了一个同步化机制,线程安全statck:堆栈类,先进后出hashtable:比 hashMap 线程安全enumeration:枚举,相当于迭代器...

2020-05-29 19:53:10 94

原创 容器

ArrayList 和 LinkedList 的区别ArrayList 的底层的数据结构是数组,支持随机访问;而 LinkedList 的底层数据结构是双向循环链表,不支持随机访问使用下标访问元素:ArrayList 的时间复杂度是 o(1); LinkedList 是 o(n)如何实现数组和 List 之间的转换List 转换成数组:调用 ArrayList 的 toArray 方法数组转换成List:调用 Arrays的 asList 方法ArrayList 和 Vector 的区别

2020-05-28 17:46:02 107

原创 容器

HashMap 的实现原理HashMap 概述:HashMap 是基于哈希表的 Map 接口的非同步实现。此类实现提供所有可选的映射操作,并允许 null 值和 null 键。此类不保证映射的顺序,特别是它不保证该顺序的恒久不变。HashMap 的数据结构:在 java 编程语言中,最基本的结构就两种,一种是数组,另一种但是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造。HashMap 实际上是一个“链表散列”的数据结构,即数组和链表的结合体。往 HashMap 中 put 元素是,首

2020-05-27 21:14:36 117

原创 容器

List、Set、Map 之间的区别是什么?HashMap 和 Hashtable 有什么区别HashMap 去掉了 HashTable 的 contains 方法,但是加上了 containValue 和 containKey 方法。HashMap 非同步的,线程不安全,效率高;Hashtable 同步的,线程安全,效率低。HashMap 允许 null 值和 null 键,Hashtable 不允许。如何决定使用 HashMap 还是 TreeMapHashMap:在 Map 元素中

2020-05-26 19:11:17 286

原创 容器

java 容器都有哪些

2020-05-25 17:18:11 147

原创 每日练习——JAVA基础

java 中 IO 流分为几种按功能:输入流和输出流按类型:字节流和字符流区别:字节流按8位传输一字节为单位输入输出数据;字符流按16位传输以字符为单位输入输出数据BIO、NIO、AIO 有什么区别BIO:Block IO 同步阻塞式 IO ,就是我们平常使用的传统 IO ,它的特点是模式简单实用方便,并发处理能力低。NIO:New IO 同步非阻塞 IO ,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现多路复用AIO:Asynchronous IO 是 N

2020-05-24 21:15:04 138

原创 每日练习——JAVA基础

抽象类必须要有抽象方法?抽象类不一定非要有抽象方法,但是具有抽象方法的类必须是抽象类普通类和抽象类的区别普通类不能包含抽象方法,抽象类可以包含抽象方法抽象类不能直接实例化,普通类可以直接实例化抽象类可以使用 final 修饰?不能,定义抽象类就是让其他类继承的,如果使用 final 修饰,则此类无法被继承,因此产生矛盾,抽象类不能使用 final 修饰接口与抽象类有什么区别实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现构造函数:抽象类可以有

2020-05-23 16:15:56 103

原创 每日练习——JAVA基础

如何将字符串反转使用 StringBuffer 或者StringBuilder 的 reverse() 方法即可 String str = "abcdef"; StringBuffer sb = new StringBuffer(); StringBuffer reverse = sb.append(str).reverse(); System.out.println(reverse);StringBuilder和StringBuf

2020-05-22 21:45:37 91

原创 每日练习——JAVA基础

java 中操作字符串的都有哪些类?它们之间有什么区别?操作字符串的类有:String、StringBuffer、StringBuilderString 和 StringBuffer、StringBuilder区别:String 声明的是不可变的对象,每次才做都会生成亲的 String 对象,然后将指针指向新的 String 对象StringBuffer 和StrinigBuilder 可以在原有的对象的基础上进行操作,因此,经常改变字符串内容的情况下最好不要使用 StringString

2020-05-21 20:25:18 112

原创 每日练习——JAVA基础

java中 Math.round(-1.5) 等于多少参数为 double 类型,返回的是最接近参数的 long 类型参数为 float 类型,返回的是最接近参数的 int 类型-1.5 为 double 类型,结果等于 -1String类型属于基本数据类型?String 类型不属于基本数据类型基本数据类型有8种:byte、short、int、long、float、double、boolean、charString属于对象...

2020-05-20 20:28:15 95

原创 每日练习——JAVA基础

两个对象的 hashCode() 相同,则 equals() 也一定为 ture ?两个对象的 hashCode() 相同,equals() 不一定为 turehashCode() : 返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算equals() : 默认情况比较的是两个对象的地址值是否相同,但很多类都会重写equals() 。比如 String。散列表:在散列表中,hasdCode() 相等即两个键值对的哈希值相等,然而,两个对象的哈希值相等,并不一定能得出键值对相等。fina

2020-05-19 18:10:31 88

原创 每日练习——JAVA基础

JDK和JRE有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。JRE:Java Runtime Environment 的简称,java 运行环境,为 java 提供了所需环境。总结:JDK 包含了JRE,同时含包含了编译 java 源码的 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果需要运行 java 程序,只需要安装 JRE 即可,如果需要编写 java 程序,需要安装 JDK

2020-05-18 18:55:54 105

原创 Servlet基础入门

快速入门创建JavaEE项目定义一个类,实现Servlet接口* public class ServletDemo1 implements Servlet实现接口中的抽象方法配置Servlet* 在web.xml中配置: <!--配置Servlet --> <servlet> <servlet-name>demo1</servlet-name> <servlet-clas

2020-05-17 13:53:06 142

原创 win10修改Tomcat命令行乱码问题

当在windows上的Tomcat中的输出不是GBK时,就会出现乱码情况,通过下面的修改方式,可只针对Tomcat的运行窗口的编码格式进行修改修改方法:Win+R 输入 " regedit " 打开注册表编辑器,按路径“计算机\HKEY_CURRENT_USER\Console\Tomcat”找,然后在右侧窗口编辑CodePage,将值改为 fde9 (原值为 3a8),基数为十六进制,或基数十进制形式下值为65001,保存即可(无意中发现的Tomcat运行窗口编码的修改方式,按注册表路径来看,应该是只对

2020-05-15 13:14:52 367

原创 idea启动Tomcat 控制台乱码

解决idea启动Tomcat控制台乱码问题分析应该是编码不一致导致的,是idea与Tomcat命令行输出格式不一致所致解决方案打开到tomcat安装目录下的conf/文件夹 修改logging.properties文件找到:java.util.logging.ConsoleHandler.encoding = UTF-8更改为:java.util.logging.ConsoleHandler.encoding = GBK或将其注释掉:#java.util.logging.ConsoleHan

2020-05-15 12:56:05 130

原创 idea启动Tomcat出现警告

问题描述警告 [RMI TCP Connection(3)-127.0.0.1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]. Default version will be used.解决方案tomcat、JDK、web.xml 对应关系,向下兼容web.xml——version2.2——JDK1.1——Tomcat3.3web.xml——version2.3——JDK

2020-05-15 12:33:24 2165

原创 XML快捷查询方式——Xpath

XML快捷查询方式——Xpath步骤使用Jsoup的Xpath需要在导入Jsoup jar包的基础上额外导入jar包。查询w3cshool参考手册,使用xpath的语法完成查询代码package com.company.xml.xpath;import cn.wanghaomiao.xpath.exception.XpathSyntaxErrorException;import cn.wanghaomiao.xpath.model.JXDocument;import cn.wanghao

2020-05-14 16:04:42 352

原创 Jsoup快速入门

步骤导入jar包获取Document对象获取对应的标签Element对象获取数据代码实现package com.company.xml.Jsoup;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import java.io.File;import java.io.IOException;

2020-05-09 17:37:45 220

原创 BootStrap基础

Bootstrap:1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。 * 框架:一个半成品软件,开发人员可以在框架基础上,在进行开发,简化编码。 * 好处: 1. 定义了很多的css样式和js插件。我们开发人员直接可以使用这...

2020-05-08 16:18:14 214

原创 BootStrap入门

步骤下载Bootstrap在项目中将这三个文件夹复制创建html页面,引入必要的资源文件代码<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE...

2020-05-07 17:45:45 312

原创 JS控制进行表格全选

题目进行表格的全选和全不选以及反选,鼠标移动到表格上的某一行是表格变颜色分析1.全选:获取所有的checkbox遍历cb,设置每一个cb的状态为选中 checked2.其他:和全选基本一样,仿照着就可以程序代码<!DOCTYPE html><html lang="en"><head> <meta charset="U...

2020-05-06 13:43:29 989

原创 自动跳转首页

题目在页面上显示多少秒之后,自动跳转首页…即跳转到百度页面分析还需借助定时器来进行倒计时使用 location.href = “”; 来进行页面的跳转程序代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>自动跳转首页...

2020-05-03 13:22:19 405

原创 轮播图

题目制作一个轮播图分析制作轮播图主要需要使用定时器来计算每隔多长时间来进行一次图片的变换程序代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>轮播图</title> <script&g...

2020-05-03 13:16:04 158

原创 JS电灯开关

题目使用JS来进行对点灯开关的控制分析通过将电灯泡的图片进行单击绑定通过点击来进行电灯泡的关灭程序代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <scr...

2020-05-02 18:04:30 228

原创 JS打印九九乘法表

题目使用JS来打印简单的九九乘法表分析使用两层循环来打印出九九乘法表将乘法表放在 table 表格中来进行打印用 CSS 来控制每个 th 的边框程序代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>九九乘法表&lt...

2020-04-30 14:52:54 1387

原创 CSS基础

CSS基础1. 概念: Cascading Style Sheets 层叠样式表 * 层叠:多个样式可以作用在同一个html的元素上,同时生效2. 好处: 1. 功能强大 2. 将内容展示和样式控制分离 * 降低耦合度。解耦 * 让分工协作更容易 * 提高开发效率3. CSS的使用:CSS与html结合方式 1. 内联样式 * 在标签内使用style属性指定c...

2020-04-29 19:38:35 93

原创 注册页面html和css结合

注册页面html和css结合分析使用css控制最外侧设置body背景图片弄一个框框用div框起来大的div里分了3块小的div来控制使用浮动程序代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>注册页面</ti...

2020-04-28 20:29:06 180

原创 HTML基础

HTML概念概念:是最基础的网页开发语言 * Hyper Text Markup Language 超文本标记语言 * 超文本: * 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本. * 标记语言: * 由标签构成的语言。<标签名称> 如 html,xml * 标记语言不是编程语言标签:1. 文件标签:构成html最基本的标签...

2020-04-27 18:04:27 103

空空如也

空空如也

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

TA关注的人

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