自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ConstXiong

记录编程实践...

  • 博客(32)
  • 资源 (7)
  • 收藏
  • 关注

原创 Java并发原子类有哪些?如何使用?

JDK Atomic开头的类,是通过 CAS 原理解决并发情况下原子性问题 CAS 包含 3 个参数,CAS(V, E, N)。V 表示需要更新的变量,E 表示变量当前期望值,N 表示更新为的值。只有当变量 V 的值等于 E 时,变量 V 的值才会被更新为 N。如果变量 V 的值不等于 E ,说明变量 V 的值已经被更新过,当前线程什么也不做,返回更新失败 当多个线程同时使用 CAS 更新一个...

2019-12-30 09:37:16 413

原创 JDK 中有哪些同步容器?并发容器?

JDK 1.5 之前同步容器包括:Vector、Hashtable、Stack Collections 工具类将普通容器,转变为同步容器,如:public static <T> Collection<T> synchronizedCollection(Collection<T> c)public static <T> Set<T&g...

2019-12-30 09:24:21 383

原创 什么是UML?

UML是统一建模语言,Unified Modeling Language的缩写 综合了面向对象的建模语言、方法和过程,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持 可以帮助沟通与交流、辅助应用设计、文档的生成、阐释系统的结构和行为 定义了多种图形化的符号来描述软件系统部分或全部的静态结构和动态结构 包括:用例图(use case diagram)、...

2019-12-27 09:17:20 506

原创 为什么Java中一个类可以实现多个接口,但只能继承一个类?

多继承会产生钻石问题(菱形继承)类 B 和类 C 继承自类 A,且都重写了类 A 中的同一个方法 类 D 同时继承了类 B 和类 C 对于类 B、C 重写的类 A 中的方法,类 D 会继承哪一个?这里就会产生歧义 考虑到这种二义性问题,Java 不支持多重继承Java 支持类实现多接口接口中的方法是抽象的,一个类实现可以多个接口 假设这些接口中存在相同方法(方法名与参数相同),...

2019-12-27 09:16:10 10355 1

原创 常见的HTTP协议状态码?

2xx:表示请求已被成功接收、理解、接受200(成功) 服务器已成功处理了请求。这个状态码对servlet是缺省的,如果没有调用setStatus方法的话,就会得到 200 204(无内容) 服务器成功处理了请求,未返回任何内容 205(重置内容) 服务器成功处理了请求,未返回任何内容,重置文档视图,如清除表单内容 206(部分内容) 服务器成功处理了部分 GET 请求3xx:重...

2019-12-26 09:12:57 392

原创 如何配置一个servlet?

web工程中的web.xml文件:<servlet> <servlet-name></servlet-name> <servlet-class></servlet-class></servlet><servlet-mapping> <servlet-name></servlet-n...

2019-12-26 09:12:02 559

原创 jQuery中get与eq方法的区别

get() 返回的是一个 html 对象 eq() 返回的是一个 jQuery 对象【Java面试题与答案】整理推荐基础与语法 集合 网络编程 并发编程 Web 安全 设计模式 框架 算法与数据结构 异常 文件解析与生成 Linux MySQL Oracle Redis Dubbo...

2019-12-26 09:10:44 420

原创 Servlet中的doPost和doGet方法有什么区别?传递和获取参数上有什么区别?

区别:doPost 用来处理 post 请求,doGet 用来处理 get 请求参数:传递的参数相同的都是 HttpServletRequest 和 HttpServletResponse【Java面试题与答案】整理推荐基础与语法 集合 网络编程 并发编程 Web 安全 设计模式 框架 算法与数据结构 异常 文件解析与生成 Linux MySQL Ora...

2019-12-26 09:09:40 1491

原创 CyclicBarrier如何使用?

CyclicBarrier 的中文意思是 "循环栅栏",简单理解就是一个可以循环利用的屏障。 用于让多个线程阻塞在屏障处,当屏障达到放开的条件,所有被阻塞的线程会继续执行,此时 CyclicBarrier 会自动重置。 阻塞线程在屏障处,调用 CyclicBarrier 对象的 await() 方法 CyclicBarrier 内部主要通过了 ReentrantLock 和 Conditio...

2019-12-26 09:07:29 495

原创 JavaScript中null、undefined有什么区别?

赋值:null 表示定义了但未赋值,undefined 表示未定义 数据转换:null 在做数值转换时会被转换为 0,undefined 会被转换为 NaN【Java面试题与答案】整理推荐基础与语法 集合 网络编程 并发编程 Web 安全 设计模式 框架 算法与数据结构 异常 文件解析与生成 Linux MySQL Oracle Redis Dubbo...

2019-12-25 09:13:23 378

原创 div居中和内容居中的css属性设置

Div居中:margin:auto 0px; 内容居中:text-align:center;【Java面试题与答案】整理推荐基础与语法 集合 网络编程 并发编程 Web 安全 设计模式 框架 算法与数据结构 异常 文件解析与生成 Linux MySQL Oracle Redis Dubbo...

2019-12-25 09:12:31 475

原创 jQuery中有哪些选择器?

基本选择器 层次选择器 基本过滤选择器 内容过滤选择器 可见性过滤选择器 属性过滤选择器 子元素过滤选择器 表单选择器 表单过滤选择器【Java面试题与答案】整理推荐基础与语法 集合 网络编程 并发编程 Web 安全 设计模式 框架 算法与数据结构 异常 文件解析与生成 Linux MySQL Oracle Redis Dubbo...

2019-12-25 09:11:33 378

原创 Javascript正则表达式使用方式有哪些?

一、字面量的形式var expression = /pattern/flags;flags参数i:忽略大小写g:全局匹配gi:全局匹配+忽略大小写二、使用 RegExp 对象var reg = new RegExp(expression, destStr);RegExp.$1 是 RegExp 的一个属性,指的是与正则表达式匹配的第一个子匹配(以括号为标志)字符串。...

2019-12-25 09:10:45 416

原创 写一些常见的Javascript正则表达式?

身份证:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ 数字:/[0-9]/ 英文:/^[a-z]+$/i 中文:/[\u4e00-\u9fa5]/gm 数字逗号:/^[\d,]*$/ 手机号:/^[1][3,4,5,7,8][0-9]{9}$/ 新能源车牌(长度为8):/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z...

2019-12-25 09:09:42 796

原创 body中的onload事件和document.ready()有什么区别?

onload 表示页面包含图片等文件在内的所有元素都加载完成 ready 表示文档结构已经加载完成,不包含图片等非文字媒体文件来一道刷了进BAT的面试题?...

2019-12-25 09:08:48 864

原创 HTML、CSS、Javascript在Web开发中的作用?

HTML:Hyper Text Markup Language,超文本标记语言,是用来描述网页的一种语言 CSS:Cascading Style Sheets,层叠样式表,控制如何显示 HTML 元素 JavaScript,一种脚本语言,脚本代码无需编译,在浏览器或 JS 容器可以直接解释执行页面中HTML 定义结构 CSS 控制显示样式 JavaScript 给页面加入各种操...

2019-12-25 09:08:12 3993

原创 CountDownLatch如何使用?

CountDownLatch 可以起到发令枪的作用,JDK 1.5 开始提供 用 CountDownLatch 实现并发访问,在写测试工具时希望达到某条件后,所有线程同时执行 也可以用 CountDownLatch 实现,某线程等待其他线程完成,进行最后的统一处理代码如下:package constxiong.interview;import java.util.concur...

2019-12-24 19:47:37 429

原创 StampedLock如何使用?

StampedLock 是从 JDK1.8 开始提供,它的性能比 ReadWriteLock 好 StampedLock 支持:乐观读锁、悲观读锁、写锁 StampedLock 的悲观读锁、写锁,与 ReadWriteLock 的读锁、写锁用法相似:读读可并行、读写互斥、写写互斥。 StampedLock 之所以性能优于ReadWriteLock,因为它支持乐观读锁。乐观读锁操作,支持一个...

2019-12-24 09:04:31 696

原创 Java中的读写锁ReadWriteLock

ReadWriteLock 是 JDK 中的读写锁接口ReentrantReadWriteLock 是 ReadWriteLock 的一种实现读写锁非常适合读多写少的场景。读写锁与互斥锁的一个重要区别是读写锁允许多个线程同时读共享变量,这是读写锁在读多写少的情况下性能较高的原因。读写锁的原则:多个线程可同时读共享变量 只允许一个线程写共享变量 写线程正在执行写操作,...

2019-12-20 09:20:51 428

原创 JavaScript中null、undefined有什么区别?

赋值:null 表示定义了但未赋值,undefined 表示未定义 数据转换:null 在做数值转换时会被转换为 0,undefined 会被转换为 NaN【Java面试题与答案】整理推荐基础与语法 集合 网络编程 并发编程 Web 安全 设计模式 框架 算法与数据结构 异常 文件解析与生成 Linux MySQL Oracle Redis Dubbo...

2019-12-19 09:11:06 345

原创 Java中的信号量Semaphore

信号量的实现模型一般包括:1个计数器、1个等待队列、3个方法(需要保证原子性)Semaphore 实现的伪代码(JDK 中 Semaphore是基于 AbstractQueuedSynchronizer 实现,可以指定是否公平):class Semaphore{ //计数器 int count; //等待队列 Queue queue; //初始化 Semaphore...

2019-12-19 09:09:31 379

原创 Java中实现线程通信方式有哪些?

对象的 wait(long timeout)、wait(long timeout, int nanos)、wait() 方法,组合对象的 notify()、notifyAll() 显示锁:Lock.newCondition()、Condition await 系列方法、Condition signal()、signalAll() 信号量:Semaphore acquire 系列方法、relea...

2019-12-18 09:29:33 476

原创 说说对于sychronized同步锁的理解

每个 Java 对象都有一个内置锁 线程运行到非静态的 synchronized 同步方法上时,自动获得实例对象的锁 持有对象锁的线程才能运行 synchronized 同步方法或代码块时 一个对象只有一个锁 一个线程获得该锁,其他线程就无法获得锁,直到第一个线程释放锁。任何其他线程都不能进入该对象上的 synchronized 方法或代码块,直到该锁被释放。 释放锁是指持锁线程退出了 ...

2019-12-18 09:25:58 432

原创 线程的run()方法和start()方法有什么区别?

启动一个线程需要调用 Thread 对象的 start() 方法 调用线程的 start() 方法后,线程处于可运行状态,此时它可以由 JVM 调度并执行,这并不意味着线程就会立即运行 run() 方法是线程运行时由 JVM 回调的方法,无需手动写代码调用 直接调用线程的 run() 方法,相当于在调用线程里继续调用方法,并未启动一个新的线程【Java面试题与答案】整理推荐基础与...

2019-12-18 09:24:32 959

原创 说说与线程相关的方法

加锁对象的 wait() 方法,使一个线程处于等待状态,并且释放所持有的对象的锁 加锁对象的 notify() 方法,由 JVM 唤醒一个处于等待状态的线程,具体哪个线程不确定,且与优先级无关 加锁对象的 notityAll() 方法,唤醒所有处入等待状态的线程,让它们重新竞争对象的锁 线程的 sleep() 方法,使一个正在运行的线程处于睡眠状态,是静态方法,调用此方法要捕捉 Interr...

2019-12-18 09:23:01 514

原创 sleep()和yield()有什么区别?

sleep() 方法给其他线程运行机会时不考虑线程的优先级;yield() 方法只会给相同优先级或更高优先级的线程运行的机会 线程执行 sleep() 方法后进入阻塞状态;线程执行 yield() 方法转入就绪状态,可能马上又得得到执行 sleep() 方法声明抛出 InterruptedException;yield() 方法没有声明抛出异常 sleep() 方法需要指定时间参数;yiel...

2019-12-18 09:20:46 956

原创 同步和异步有何异同,分别在什么情况下使用?

同步:发送一个请求,等待返回,然后再发送下一个请求 异步:发送一个请求,不等待返回,随时可以再发送下一个请求使用场景如果数据存在线程间的共享,或竞态条件,需要同步。如多个线程同时对同一个变量进行读和写的操作 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就可以使用异步,提高效率、加快程序的响应【Java面试题与答案】整理推荐...

2019-12-17 14:06:47 1451

原创 如何保证多个线程同时启动?

可以 wait()、notify() 实现;也可以使用发令枪 CountDownLatch 实现。CountDownLatch 实现较简单,如下:package constxiong.interview;import java.util.concurrent.CountDownLatch;/** * 测试同时启动多个线程 * @author ConstXiong */pu...

2019-12-17 13:55:37 1471

原创 volatile关键字能否保证线程安全?

单纯使用 volatile 关键字是不能保证线程安全的volatile 只提供了一种弱的同步机制,用来确保将变量的更新操作通知到其他线程 volatile 语义是禁用 CPU 缓存,直接从主内存读、写变量。表现为:更新 volatile 变量时,JMM 会把线程对应的本地内存中的共享变量值刷新到主内存中;读volatile 变量时,JMM 会把线程对应的本地内存设置为无效,直接从主内存中读...

2019-12-17 13:53:47 3712

原创 Condition实现等待、唤醒

Condition 接口是 JDK 1.5 开始提供的,用来实现线程间的等待与唤醒Condition 的对象可以通过 Lock 对象的 newCondition() 方法创建Condition 对象方法的调用必须在 Lock 对象的 lock() 和 unlock() 之间,否则会抛出异常 java.lang.IllegalMonitorStateExceptionConditi...

2019-12-11 09:17:21 502 1

原创 JDK中Atomic开头的原子类实现原子性的原理是什么?

JDK Atomic开头的类,是通过 CAS 原理解决并发情况下原子性问题。 CAS 包含 3 个参数,CAS(V, E, N)。V 表示需要更新的变量,E 表示变量当前期望值,N 表示更新为的值。只有当变量 V 的值等于 E 时,变量 V 的值才会被更新为 N。如果变量 V 的值不等于 E ,说明变量 V 的值已经被更新过,当前线程什么也不做,返回更新失败。 当多个线程同时使用 CAS 更新...

2019-12-11 09:09:55 504

原创 什么是协程?Java中如何支持?

协程(Coroutine):是单线程下的并发,又称微线程,纤程。简单理解就是线程中的线程。优点: 轻量,创建成本小,降低了内存消耗 用户态调度,减少了 CPU 上下文切换的开销,提高了 CPU 缓存命中率 减少同步加锁,提高了性能 可以用同步思维写异步代码 缺点: 在协程执行中不能有阻塞操作,否则整个线程被阻塞 不擅长处理 C...

2019-12-05 19:52:47 1192

eclipse使用教程ppt

ppt版,eclipse的使用教程。简单介绍了eclipse的使用。

2018-09-03

Eclipse入门教程

eclipse的入门教程,介绍了如何使用eclipse开发java项目。

2018-08-31

JasperReport中文用户手册

JasperReport是一款开源报表引擎,用纯java编写。文档是对JasperReport的介绍。包含设计工具和模板文件等...

2018-08-30

无线wifi破解教程

简单介绍了wifi的工作原理。讲解了如何使用破解工具,搭建工作环境。使用字典破解wifi的密码。

2018-08-30

计算机网络原理 自顶向下方法 英文第6版

自顶向下的方法来讲授计算机网络的原理及其协议,即从应用层协议开始沿协议栈向下讲解,强调应用层范例和应用编程接口,使读者尽快进入每天使用的应用程序环境之中进行学习和“创造”。《计算机网络(自顶向下方法原书第4版)》的讲解以因特网为例,学以致用,注重教学法,深入浅出地重点讲解计算机网络的基本原理。

2018-08-27

空空如也

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

TA关注的人

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