自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 15_原子操作

CAS 原子操作锁锁有两类:悲观锁:synchronized是独占锁,级悲观锁,会导致其他所有需要锁的线程挂起,等待线程释放锁乐观锁:每次不加锁而是假设有冲突而去王城某项操作,如果因为冲突失败就重试,直到成功为止CASCompare And Swap —— 比较并交换是乐观锁的一种实现三个值:一个当前内存值,旧的预期值A,将更新的值B,先获取到内存当中当前的内存值V,再将V与...

2020-04-11 00:02:36 133

原创 14_可重入锁、不可重入锁

可重入锁、不可重入锁可重入锁可以延续使用不可重入锁不可以延续使用不可重入锁简单实现package com.tsymq.thread.advanced;// 不可重入锁class UnReentrantLock { // 是否被锁定 private boolean isLocked = false; // 锁定 public synchronize...

2020-04-11 00:02:20 117

原创 13_ThreadLocal

ThreadLocal 线程独立的数据线程拥有自己的数据,使用自己的局部变量比使用全局变量好局部变量只有线程自己可见,不会影响其他线程ThreadLocal能放一个线程级别的变量,其本身能被多个线程共享使用(可共享给子线程),并且能达到线程安全的目的常用方法 get / set / initialValue建议将ThreadLocal定义为private static...

2020-04-11 00:00:37 125

原创 12_happenBefore

HappenBefore指令重排:执行代码的顺序可能与编写的代码顺序不一致,即虚拟机优化代码,则为指令重排,目的是为了优化程序性能happen-before:编译器或运行时环境为了优化程序性能而采取的对指令重新排序执行的一种手段例子:package com.tsymq.thread.advanced;public class HappenBefore { private sta...

2020-04-11 00:00:19 96

原创 11_quartz简单使用示例

quartz框架基本使用示例package com.tsymq.thread.advanced;import static org.quartz.DateBuilder.evenMinuteDate;import static org.quartz.DateBuilder.evenSecondDateAfterNow;import static org.quartz.JobBuilde...

2020-04-10 23:56:11 148

原创 10_多线程_定时调度

多线程定时调度 Timed Scheduling某一个有规律的时间点执行某个任务简单示例:package com.tsymq.thread.advanced;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class TimedScheduling { publi...

2020-04-10 23:55:17 106

原创 09_并发协作

线程协作、线程通信3个解决线程中间通信问题的方法方法描述final void wait()线程一直等待,直到其他线程通知,与sleep不同,会释放锁final void wait(long timeout)指定等待的毫秒数final void notify()唤醒一个处于等待状态的线程final void notifyAll()唤醒同一个对象上所有...

2020-04-10 23:54:35 83

原创 08_死锁-产生与解决

死锁——产生与解决1、死锁多个线程各自占用一些资源,并且相互等待其他线程占用的资源才能进行,而导致两个或多个线程都在等待对方释放资源,所以度停止执行了。产生的原因:过多的同步可能造成死锁某一个同步块同时拥有两个以上对象的锁时,就可能发生死锁问题死锁出现的情况:package com.tsymq.thread.concurrnet;public class DeadLock { ...

2020-04-10 23:54:03 65

原创 07_并发、同步、安全

并发:多个线程同时操作同一个对象线程同步队列 + 锁 = 同步为保证数据在方法中被访问的正确性,在访问时加入锁机制,当一个线程获得资源的访问权时,会加上排他锁,独占资源,其他线程必须等待,使用后释放锁即可但是就存在一些问题:一个线程持有锁时会导致其他所有需要此锁的线程挂起在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题如果一个优先级高的线程等待一个优先级...

2020-04-10 23:53:19 83

原创 06_其他方法

Thread类其他常用方法1、isAlive()线程是否存活是:true否:falseSystem.out.println(Thread.currentThread().getName() + "存活:"+Thread.currentThread().isAlive());2、setName()给线程起名字MyInfo mi = new MyInfo();Thread t ...

2020-04-10 23:52:53 91

原创 05_守护线程

守护线程(DeamonThread)线程分为用户线程和守护线程两种默认所有的线程都是用户线程守护线程是为用户线程服务的虚拟机必须确保用户线程执行完毕虚拟机如果要停止不需要等等守护线程执行完毕(如后台记录操作日志、监控内存使用等)示例:一个人一直在工作,时间会一直在过去,但工作有完成的时候,时间却不会停,但可以知道完成工作花了多少时间,从工作开始时就开始计时,...

2020-04-10 23:51:12 57

原创 04_线程优先级

线程优先级线程调度器按照线程优先级来决定应调度那个线程来执行优先级的设定建议在start()调用前优先级低只是表示获得调度的概率低,并不是绝对先调用优先级高的线程后调用优先级低的优先级不代表绝对的调度先后顺序优先级用数值 1 - 10 来表示Thread类提供了三个常量NORM_PRIORITY —— 5 默认MIN_PRIORITY —— 1MAX_PRIORITY —— ...

2020-04-10 23:50:44 112

原创 03_线程状态

线程状态1、五大状态:新生状态就绪状态运行状态阻塞状态死亡状态1.1、新生状态当线程被创建以后即进入新生状态,表示线程可执行1.2、就绪状态导致线程进入就绪状态的原因:调用了start()方法阻塞状态解除调用yield()方法,线程中断一下,让出对cpu的占用jvm本身将cpu切换到其他线程1.3、运行状态运行状态一定是被cpu调度到,线程进入运行状态1....

2020-04-10 23:49:43 91

原创 02_Lambda表达式简化线程使用

使用Lambda表达式简化线程的使用当线程只需使用很少的次数、很简单时,可使用Lambda表达式package com.tsymq.thread;public class LambdaThread { public static void main(String[] args) { // 匿名内部类,必须借助接口或父类 new Thread(new...

2020-04-10 23:44:40 143

原创 01_线程基础

1、进程与线程(Process & Thread)程序:指令和数据的集合,其本身没有运行含义,是静态概念进程:是执行程序的一次执行过程,是动态概念,是系统分配资源的单位线程:一个进程中至少有一个线程,是CPU调度和执行的单位2、线程创建方式继承Thread类(重点)实现Runnable接口(重点)实现Callable接口2.1、继承Thread类创建线程类以继承...

2020-04-10 23:43:59 76

原创 react10_状态提升

react 状态提升一个父组件和多个子组件时,本来应存在于子组件的state移动到父组件,子组件使用props,父组件的state作为子组件的props传入子组件,可以使用子组件的功能,使子组件数据同步,也能更新父组件的渲染//根据输入的温度判断是否沸腾 组件function BoilingVerdict(props) { if(props.celsius >= 100){...

2019-10-09 16:03:59 127

原创 react09_表单

react 表单1.input输入框react中用state来设置输入框的值,获取的时候直接获取this.state.inputValue即可class InputForm extends React.Component { constructor(props) { super(props); this.state = {inputValue: ''...

2019-10-09 16:03:23 91

原创 react08_列表&Key

react 列表&Key循环输出想显示的内容//想输出的单个项目function MsgItem(props) { return <p id={props.num}>第{props.num}条信息&nbsp;&nbsp;<button name={props.num}>删除</button></p>;}f...

2019-10-09 16:02:30 72

原创 react07_条件渲染

react 条件渲染阻止组件渲染在定义组件的render()方法中返回null可阻止该组件渲染页面初始是显示警告消息的,当点击Hide后,state中的showWarning变为false,这导致警告消息组件被阻止渲染,即隐藏了警告消息function WarningBanner(props) { if (!props.warn) { return null; ...

2019-10-09 16:01:50 87

原创 react06_事件处理

react 事件处理一、react事件1.事件的定义React 事件的命名采用小驼峰式(camelCase),而不是纯小写。使用 JSX 语法时你需要传入一个函数作为事件处理函数,而不是一个字符串。function activateLasers(){ ...}<button onClick={activateLasers}> Activate Lase...

2019-10-09 16:00:40 102

原创 react05_state&生命周期

react state&生命周期ps:本文大部分资料、内容来自react官方文档在元素渲染中写的计时器,通过每秒执行一次ReactDOM.render()来更新页面,但现在希望只写一次代码,只调用一次ReactDOM.render()就能让<Clock />组件自动更新,这需要在<Clock />组件中添加state.一、实现步骤:创建一个同名的 ES6...

2019-10-07 11:46:28 354

原创 react04_组件&props

react 组件&props一、函数组件和类组件1.函数组件有效的react函数组件,接受唯一的参数props,并返回一个react元素,在本质上是一个JavaScript函数function Welcome(props){ return <h2>Welcome, {props.name}</h2>}2.类组件类组件是一个es6的class...

2019-10-07 11:43:33 77

原创 react03_jsx

react JSX一、JSX官方概述先来一行代码const element = <h2>Hello, tsymq!</h2>;这个标签语法不是一个字符串,也不是HTML,这中语法称为JSX,是一种JavaScript 的语法扩展,它具有 JavaScript 的全部功能。JSX 是一个看起来很像 XML 的 JavaScript 语法扩展,它有以下优点:JS...

2019-10-07 11:42:35 102

原创 react02_元素渲染

react元素渲染一、更新元素渲染react元素都是不可变的,当元素被创建渲染后,就无法改变它的属性或内容,更新的唯一方法就是创建一个新的元素,将其传入**ReactDOM.render()**方法,将内容再次渲染。例如网页中的计时器,每秒更新一次当前时间:function timer() { const ele = ( <div> ...

2019-10-07 11:41:38 85

原创 react01_安装

react安装——直接使用一、普通方式,在HTML中引入react所需的库,可通过cdn引入库:react、react-dom、babel(用于编译jsx,将其编译为js,也用于将es6转换为es5)<script src="https://unpkg.com/react@16/umd/react.development.js"></script><scrip...

2019-10-07 11:40:00 83

原创 设计模式——抽象工厂模式

设计模式——抽象工厂模式1. 理解抽象工厂模式抽象工厂模式并不想其他工厂模式那样可以自由增加新产品,可以容易的调整生产的流水线,它是用来生产不同产品族的全部产品的抽象工厂模式可以看做是工厂模式的升级版,它是可以生产工厂的超级工厂,在有很多个业务品牌、业务分类时,通过抽象工厂模式生产需要的对象是一种非常好的解决方案。也可以这样来理解抽象工厂模式2. 使用抽象工厂模式场景:现在有分...

2019-09-14 18:33:30 195

原创 设计模式——工厂方法模式

设计模式——工厂方法模式1.面向对象设计的基本原则在了解这个模式之前,先简单了解一下面向对象设计的基本原则OCP(开闭原则:Open-Closed Principe):一个软件的实体应当对扩展开放,对修改关闭。这就意味着,以后要扩展新的功能,不能对当前的类进行修改来实现,而是通过增加新的类来实现。DIP(依赖倒转原则,Dependence Inversion Principle):要针对...

2019-09-14 18:28:23 130

原创 设计模式——简单工厂模式

文章目录设计模式——简单工厂模式1.对工厂模式的理解假设一个很简单的场景:最简单的解决办法:1.1工厂模式2.简单工厂模式2.1 明确我们要生产的东西2.2 不同的手机有不同的品牌、设计图2.3 然后把设计图给工厂2.4 获取产品3.总结和问题总结问题设计模式——简单工厂模式1.对工厂模式的理解同样的一个理论原则,每个人的理解方式不一样,不过有简单法则,尽量让一切都保持简单,所以我尽量用一种...

2019-09-14 16:09:01 105

原创 更改html单选按钮、复选框样式 纯css+html

在html的大部分元素中,是可以直接设置它的背景样式的,但其中就不包括radio和checkbox说实话这两个东西原本的样式确实不怎么好看,所以在很多设计中都会更改方法多种多样,这是我觉得最简单直接的一种,原理是用另一个元素来代替按钮的位置,并更改其背景图片这是我用的背景图片直接上代码:<!DOCTYPE html><html> <head&g...

2019-08-31 16:41:59 1750 1

原创 Javascript初学基础(二)

Javascript初学基础(二)javascript事件事件是可以被javascript侦测到的行为html事件是发生在html元素上的事情HTML事件html事件可以是浏览器行为,也可以是用户行为html网页中每个元素都可以产生某些触发javascript函数的事件html加载完成时html input字段改变时html按钮被点击时例如,当button...

2019-08-27 14:56:05 73

原创 javascript最基础、最直观入门姿势

Javascript初学基础(一)最近我也在学js,所有将这些基础内容稍微整理了一下,确保每一个部分都有示例但是由于我之前接触过一点js相关的内容,不是每一个点都那么详细,所有这篇文章适合有一点计算机语言基础的同学阅读,但是能保证内容能被人看懂有些地方我按照的是自己的理解方式来写的,有什么不对的地方还望各位大神指出,谢谢~javascript用法页面内部的javascriptHTMl...

2019-08-16 11:52:23 139

原创 适合萌新-超详细 在IDEA中导入mysql驱动

目标二:导入mysql驱动包,连接mysql数据库不知道idea和eclipse在导入库这一块有什么区别,但是总要尝试一下,结果发现这里和eclipse是一样的在java Application中使用和在web中使用十四不一样的,eclipse中的run as -> java Aplication 和 run on server就是这样在java中使用jdbc打开Project St...

2019-07-08 13:20:01 5351 1

原创 IDEA创建java web项目,,适合初学的萌新

自己摸索IDEA创建常用项目以达到和其他IDE同样的效果目标一、创建一个普通java web项目,并配置tomcat以部署并发布第一步:创建新项目,选择java -> Web Application -> Next -> 为项目命名 -> Finish第二步:修改index.jsp和web.xml (web.xml在这里不一定需要改,个人习惯)随便加点东西,...

2019-07-08 00:27:04 198

空空如也

空空如也

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

TA关注的人

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