- 博客(26)
- 收藏
- 关注
原创 volatile关键字
文章目录volatile的作用内存可见解析问题:解决方式:防止指令重新排序解析问题:二、使用步骤1.引入库2.读入数据总结volatile的作用作用:1.多个线程之间内存可见2.防止指令重新排序内存可见解析问题:多个线程操作共享变量时,其互相是不可见的。为什么呢?是因为每个线程执行前都会将共享内存中的成员copy到自己的工作内存中,对这些成员的写操作只是针对于当前线程工作内存中的写操作。代码:public class VolatileTest { public static
2020-11-04 22:57:00
163
2
原创 阻塞队列BlockingQueue
阻塞队列(BlockingQueue)介绍:java.lang.concurrent(Java并发工具包)下的一个接口使用场景:通常用于一个线程生产对象,而另外一个线程消费这些对象的场景文章目录阻塞队列(BlockingQueue)引言BlockingQueueArrayBlockingQueue(数组阻塞队列)DelayQueue(延迟队列)LinkedBlockingQueue(链阻塞队列)PriorityBlockingQueue(具有优先级的阻塞队列)SynchronousQueue(同步队
2020-11-02 20:45:52
432
1
原创 枚举实现单例模式
枚举实现单例模式引言饿汉单例懒汉单例枚举单例破解饿汉单例破解懒汉单例枚举实现单例的安全性引申引言饿汉单例、懒汉单例,最优的枚举单例饿汉单例饿汉单例实现:public class SingleTest { public static void main(String[] args) { System.out.println(SingleTon.getInstance()); System.out.println(SingleTon.getInstance())
2020-10-31 14:01:08
192
1
原创 重定向与转发的区别
转发(服务器内部的资源跳转方式,一次性请求,浏览器的地址栏不发生改变,转发前后的页面可以使用request域对象共享数据):request.getRequestDispatcher(String path).forword(request,response);request域对象:因为request对象是对一次请求的请求数据的封装,因此request域只能用于一次请求的范围(转发)方法:...
2018-11-08 00:08:26
126
原创 request对象、response对象
请求方式的通用获取方法: 1. 获取请求参数通用方式:不论get还是post请求方式都可以使用下列方法来获取请求参数 1. String getParameter(String name):根据参数名称获取参数值 username=zs&password=123 2. String[] getParameterValues(String name):根据参数名称获取参...
2018-11-08 00:03:54
426
原创 BeanUtils封装工具类
BeanUtils工具类,简化数据封装:(使用前需要导包)//BeanUtils装载参数至JavaBean类Map<String, String[]> map = request.getParameterMap();//将请求参数转成map集合User user = new User(); //创建将要装载的javaBean类的空参对象try {BeanUt...
2018-11-07 23:59:24
333
原创 maven
命令:mvn -v查看是否已经配置好maven环境变量配置:MAVEN_HOME:maven的安装路径,不能包含中文和空格path:%MAVEN_HOME%\bin;因为maven的运行依赖JAVA_HOME,因此还要保证jdk的环境变量配置是正确的仓库:本地仓库、远程仓库(私服)、中央仓库本地仓库 :用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar...
2018-11-07 23:53:43
1134
原创 Jsoup解析xml
Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。* 快速入门:* 步骤:1. 导入jar包2. 获取Document对象3. 获取对应的标签Element对象4. 获取数据 * 代码: //2.1获取student...
2018-11-07 23:46:05
2801
2
原创 File类的一些操作
java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作1.2 构造方法public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。publi...
2018-11-07 23:37:29
433
原创 Stream流和方法引用
Stream流:(对集合跟数组进行一些简化操作,不同于IO流)JDK1.8之后出现的特点:(管道流)只能使用一次第一个Streamz流调用完毕方法,数据就会流向下一个Stream流上,而这时第一个Stream流已经使用完毕了,就会关闭。Stream流的流式思想:当需要对多个数据进行操作(特别是多步操作)的时候,考虑到性能及便利性,我们应该首先拼好一个“模型”步骤方案,然后再按照方...
2018-11-07 23:31:47
1006
原创 mysql多表查询
笛卡尔积 * 有两个集合,他们里面的额元素的所有组合情况就是迪卡尔积多表查询 * 内连接查询 1.隐式内连接: 2.显式内连接: select 字段列表 from 表1 inner join 表2 on 条件 inner 可省略 3.内连接的使用步骤 1) 确定查询哪些表 2) ...
2018-09-09 13:41:24
374
原创 数据库设计、范式、备份、还原
数据库的设计1. 多表之间的关系 1. 分类: 1. 一对一(了解): * 如:人和身份证 * 分析:一个人只有一个身份证,一个身份证只能对应一个人 2. 一对多(多对一): * 如:部门和员工 * 分析:一个部门有多个员工,一个员工只能对应一个部门 ...
2018-09-09 13:32:07
181
原创 mysql 查询(DQL)
DQL:查询语句1. 排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式1 , 排序字段2 排序方式2... * 排序方式: * ASC:升序,默认的。 * DESC:降序。 * 注意: * 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。2. ...
2018-09-09 13:26:16
416
原创 mysql基础重点+约束
1.什么是SQL? 结构化查询语言,其实就是定义了操作所有关系型数据库的规则2.SQL通用语法: 1.SQL语句可以单行或多行书写,以分号结尾。 2.使用空格或缩进来增强语句的可读性 3.MySql的SQL语句不区分大小写,关键字建议大写SQL语言的分类:DDL:操作数据库、表 DQL:查询表中数据 DML:增删改表中的数据 DCL:授...
2018-09-09 13:19:55
191
原创 注解+实例介绍
注解:* 概念:说明程序的。给计算机看的* 注释:用文字描述程序的。给程序员看的* 定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。*** 概念描述:** * JDK1.5之后的新特性 *...
2018-09-09 13:07:21
972
原创 反射
反射介绍:1.框架设计的灵魂2.框架:半成品软件,可以在框架的基础上进行软件开发,简化编码3.将类的各个组成部分封装为其它对象,这就是反射机制java代码经历的三个阶段:Source(源代码阶段)--类加载器-->Class类对象阶段--创建对象-->Runtime(运行时阶段)好处:1.在程序运行过程中,操作这些对象 2.可以解耦,提高程序的可扩展性...
2018-09-09 12:47:44
184
原创 Junit单元测试
Junit单元测试(白盒测试中的一种):1.黑盒测试(不需要写代码): 给输入值,看程序是否能够输出期望的值2.白盒测试(需要写代码): 关注程序的具体执行流程Junit使用步骤:1.定义一个测试类(测试用例): 测试类名:被测试的类名+Test 包名:xxx.xxx.xx.test2.定义测试方法: 不能使用static修饰 方...
2018-09-09 12:30:16
186
原创 ArrayList源码浅要分析
以调用无参构造方法的方式创建ArrayList对象:(JDK9) 1.ArrayList list = new ArrayList(); 创建ArrayList时,调用ArrayList类中的无参构造方法 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }...
2018-08-24 22:19:22
215
原创 运算符与数据类型转换
1.“+=”的实质:public static void main(String[] args) { //+=表示:左边的变量 = (左边变量的数据类型)(左边的变量+ 常量); int b = 3; b+='a'; System.out.println(b);}}2.数组的定义方式:public static void main(String...
2018-07-10 22:00:35
252
原创 会话管理
HTTP是一种“无状态”协议,这意味着每次客户端打开一个网页时,都建立一个单独的连接到Web服务器,服务器不会保留之前客户端请求的任何记录。但是对许多Web应用而言,服务器需要记录客户端与服务器之间的一系列请求及响应等特定信息。因此引入了会话管理。从特定用户端到服务器的一系列请求称为会话(session)。一个会话是由客户端在一次浏览过程中发出的所有HTTP请求组成的。记录会话的技术被称为会话...
2018-06-15 09:05:40
216
原创 大数据助推下的智能社会
既然提到了大数据和人工智能,那么什么是大数据和人工智能呢?大数据又在人工智能中扮演着什么样的角色呢? 首先,大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。而且,大数据与传统的数据分析不同,大数据指不用随机分析法这样捷径,而采用所有数据进行分析处理。这样处...
2018-06-15 08:57:39
489
原创 Servlet编程入门
Servlet基础:1.什么是Servlet:Java Servlet是用Java编写的服务器端程序,运行在Web服务器或应用服务器上。它是来自Web浏览器或其他HTTP客户端的请求与HTTP服务器上的数据库或应用程序之间的中间层。2.Servlet的工作流程: 1.客户端发送请求至服务器 2.服务器启动并调用Servlet 3.Servlet根据客户端请求生成响应内容并将其传...
2018-06-11 12:26:35
444
原创 http协议
http:浏览器与Web之间的数据交互需要遵守一些规范,HTTP协议就是其中的一种规范。hypertext Transfer Protocol:超文本传输协议。HTTP协议是由W3C组织推出的,它专门用于定义浏览器与Web服务器之间交换数据的格式。浏览器与Web服务器交互过程: 1.建立TCP连接 2.浏览器向服务器发送HTTP请求 3.服务器向浏览器发出HTTP响应 4.关闭TC...
2018-06-04 09:53:12
718
原创 Tomcat服务器
Tomcat来源: 是 Apache开源组织的产品。支持servlet/jsp规范(不支持ejb);开源免费的tomcat用在中小应用。 下载:http://www.apache.org tomcat不同的安装包: 安装版本: window(exe msi) linux(rmp) ...
2018-05-30 21:03:26
134
原创 单例设计模式
什么是单例设计模式?保证一个类在内存中只有一个对象两种方式:饿汉单例设计模式:1.私有化构造函数2.声明本类的引用类型变量,并创建本类的对象3.提供一个公共静态的方法获取本类的对象懒汉单例设计模式:1.私有化构造函数2.声明本类的引用类型变量,但不创建本类的对象3.提供一个公共静态的方法获取本类对象,获取之前先判断是否已经创建了本类的对象,如果没有创建,那么先创建后再返回,如果已经创建了直接返回即...
2018-05-30 11:50:46
208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人