自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 资源 (1)
  • 收藏
  • 关注

原创 java多线程08_ThreadLocal类

1.ThreadLocal类简介ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是线程局部变量(thread local variable)。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独立地改变自己的副本...

2020-03-19 13:57:56 344

原创 java多线程07_线程池

1.线程池的概念在前面的章节中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为系统启动一个新线程的成本是比较高的,它涉及到与操作系统的交互,频繁创建线程和销毁线程都需要时间。在这种情况下,使用线程池可以很好的提供性能,尤其是当程序中需要创建大量生...

2020-03-19 13:56:54 406

原创 java多线程06_Lock锁

前面章节我们学习了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从JDK1.5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本章节先从synchronized的缺陷讲...

2020-03-19 13:54:27 231

原创 java多线程05_线程通讯

多线程环境下,我们经常需要多个线程的并发和通讯。关于线程通讯,最经典的例子就是生产者和消费者的问题。1.等待唤醒方法例如生产者循环的交替生产“白色的馒头”和“黄色的玉米棒”,然后生产者把生产好的“馒头”或“玉米棒”放入一个篮子里,消费者不断的从篮子里拿“馒头”或“玉米棒”来吃。并且,当篮子中存在“馒头”或“玉米棒”的时候,生产者就通知消费者来吃“馒头”或“玉米棒”,并且自己等待不在生产“馒头”...

2020-03-19 13:53:07 154

原创 java多线程04_线程同步

前面章节,我们学习了线程的创建和状态控制,但是每个线程之间几乎都没有什么太大的联系。可是有的时候,可能存在多个线程多同一个数据进行操作,这样,可能就会引用各种奇怪的问题。现在就来学习多线程对数据访问的控制吧。由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。好在Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。1.线...

2020-03-18 21:32:08 140

原创 java多线程03_线程的生命周期和状态控制

1.线程的生命周期线程的生命周期,就是一个线程从创建到消亡的过程。关于Java中线程的生命周期,首先看一下下面这张较为经典的图:当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,它要经过新建(New)、就绪(Runnable)**、运行(Running)、**阻塞(Blocked)和死亡(Dead)五种不同的状态。尤其是当线程启动以后,它不可...

2020-03-18 21:30:57 134

原创 java多线程02_线程的创建

在Java中使用多线程非常简单,我们先学习如何创建和使用线程,然后结合案例再深入剖析线程的特性。1.Thread 类介绍该如何创建线程呢?通过 API 中搜索,查到 Thread 类。通过阅读 Thread 类中的描述。Thread是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。构造方法常用方法继续阅读,发现创建新执行线程有两种方法。 一种方法是...

2020-03-18 21:29:25 190

原创 java多线程01_多线程概述

1.多线程介绍多线程是Java语言的重要特性,大量应用于网络编程、服务器端程序的开发,最常见的UI界面底层原理、操作系统底层原理都大量使用了多线程。我们可以流畅的点击软件或者游戏中的各种按钮,其实,底层就是多线程的应用。UI界面的主线程绘制界面,如果有一个耗时的操作发生则启动新的线程,完全不影响主线程的工作。当这个线程工作完毕后,再更新到主界面上。我们可以上百人、上千人、上万人同时访问某个网...

2020-03-18 21:25:47 181

原创 IDEA系列教程03_IDEA的启动设置

1.是否导入已有设置首次启动,会弹出如下的对话框。选择不导入已有的设置。2.激活IDEA是一款收费软件,如果有经济能力,可以考虑在官网购买,购买地址如下:https://www.jetbrains.com/idea/buy/#commercial?billing=yearly其具体收费官方标准如下图:IDEA安装后,可以免费试用30天。也可以在官网购买激活码进行激活。当然,也可以使...

2020-03-16 21:21:09 882

原创 IDEA系列教程09_IDEA配置Maven

1. Maven的安装和配置Maven是一个免安装的程序,即解压则可以使用,但是Maven管理项目需要使用插件管理生命周期。而需要使用Maven的命令,所以需要配置Maven的环境变量。Maven本身使用Java开发,也依赖JDK的环境变量。1.1JDK环境变量配置配置:JAVA_HOME配置classpath配置path1.2Maven的目录结构介绍1.3配置Maven环境...

2020-03-16 21:19:34 505

原创 IDEA系列教程08_IDEA断点调试

1.Debug设置在windows系统的IDEA中,可以通过设置:Shared memory属性,从而减少对内存的占用。2.常用断点调试快捷键图标DEBUG快捷键说明F8进入下一步, 如果当前行断点是一个方法,则不进入当前方法体内F7进入下一步, 如果当前行断点是一个方法,则进入当前方法体内force step intoAlt...

2020-03-16 21:03:20 175

原创 IDEA系列教程07_IDEA模板(Templates)

1.Live Templates-代码模板代码模板是指,配置一些常用的代码字母缩写后,当输入缩写字母时,IDEA会根据输入的字母缩写,帮助自动完成预设的代码。从而提高编码效率,同时也可以进行个性化设置,例如:注释模板。官方对Live Templates介绍:https://www.jetbrains.com/help/idea/using-live-templates.html2.内置的模板...

2020-03-16 20:52:43 904

原创 IDEA系列教程06_IDEA快捷键

1.设置快捷键风格**注意:**IDEA是一个相对年轻的软件,考虑开发者已经适应了其他软件的快捷键。所以它的快捷键也支持其他软件的快捷键。但是并不是100%一致。2.修改快捷键3.常用快捷键快捷键说明alt+enter提示补全 (Class Name Completion)ctrl + /单行注释ctrl + shift + /多行注释C...

2020-03-16 20:50:33 157

原创 IDEA系列教程05_IDEA常用配置

1.进入配置界面2. Appearance & Behavior1.设置主题2.设置启动时是否打开项目3.Editor3.1General-设置鼠标轮修改字体大小3.2设置自动导入包Add unambiguous imports on the fly:自动导入不明确的结构Optimize imports on the fly: 自动帮我们优化导入的包3.3设置...

2020-03-16 20:49:45 157

原创 IDEA系列教程04_IDEA的使用

1.创建项目注意: IDEA这个软件,更贴近实际开发。一个project并不是一个纯粹的Java工程或者Java Web工程。因为在实际开发中,一个项目可能是由多个工程组成。所以在IDEA中,一个project不只是单纯的一个某个代码工程,相较于eclipse而言:IDEA中的project类似于eclipse中的workspace,类似于一个文件夹。IDEA中的Module则类似于ecl...

2020-03-14 21:51:25 233

原创 IDEA系列教程02_IDEA安装

1.安装要求IDEA对于安装电脑的硬件要求相对较高:内存:最低 2G,建议4G硬盘:1.5 GB硬盘空间+至少1 GB缓存空间屏幕:1024x768最小屏幕分辨率个人建议:内存8G以上,CPU i5以上,IDEA最好使用固态硬盘。2.安装过程1.双击安装文件,开始安装2.选择安装目录3.选择安装设置4.安装程序5.安装完成3.安装目录介绍核心bin目录介绍:...

2020-03-14 21:19:13 379

原创 IDEA系列教程01_IDEA介绍

备注:本系列教程基于Vsersion 2019.2.4版本来讲解。1. JetBrains 公司介绍IDEA(https://www.jetbrains.com/idea/)是 JetBrains 公司的产品,常用的还有:WebStorm:用于web前端开发PyCharm:用于python开发PhpStorm:用于PHP开发等等。具体的可见,该公司的产品列表:h...

2020-03-14 21:17:03 412

原创 Docker系列教程09_Docker的网络模式

1.概述docker run创建Docker容器时,可以–net选项指定容器的网络模式,Docker有以下4种网络模式:bridge模式:使–net =bridge指定,默认设置;host模式:使–net =host指定;none模式:使–net =none指定;container模式:使–net =container:NAMEorID指定。可以使用docker network ls来...

2020-03-13 19:51:08 179

原创 Docker系列教程08_Docker的mysql安装

1.安装步骤梳理搜索镜像 docker search mysql拉取镜像 docker pull查看镜像 docker images启动镜像 docker run停止容器 docker stop 容器ID移除容器 docker rm -f 容器ID2.安装mysql2.1docker hub上查找mysq...

2020-03-13 19:48:45 151

原创 Docker系列教程07_Docker发布镜像

1.镜像的生成的两种方法docker commitDockerfile2.本地镜像推送到阿里云2.1以修改的mywar的image为例来说明2.2登陆阿里开发平台https://dev.aliyun.com/search.html 完成登陆打开https://cr.console.aliyun.com/cn-hangzhou/instances/repositori...

2020-03-13 16:20:19 127

原创 Docker系列教程06_Docker的Dockerfile

1.什么是DockerfileDockerfile是用来构建Docker镜像的构建文件,是由一系列的命令和参数构成的脚本Dokcerfile的构建步骤a) 编写Dokcerfile文件b)docker build 生成新的镜像c) docker run 运行镜像以centos的镜像为例来说明 https://hub.docker.com/_/centosFROM ...

2020-03-12 19:24:31 138

原创 Docker系列教程05_Docker容器数据卷

1.什么是容器数据卷先来看看Docker的理念:1,将应用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的2,容器之间希望有可能共享数据Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷。2.容器数据卷能做什么...

2020-03-12 18:07:36 129

原创 Docker系列教程04_Docker镜像详解

1.什么是镜像1.1UnionFS(联合文件系统)UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union 文件系统是...

2020-03-11 20:55:12 172

原创 Docker系列教程03_Docker使用

1.Docker的所有命令2.帮助命令docker version 查看docker版本docker info 显示全系统信息docker --help 显示docker相关的所有命令及功能说明3.镜像命令使用3.1 docker images 列表本机上的镜像REPOSITORY:表示镜像的仓库源TAG:镜像的标签IMAGE ID:镜像IDCREATED:镜像创建时间...

2020-03-11 17:59:29 250

原创 Docker系列教程02_Docker安装

1.Docker 下载1,官网 http://www.docker.com2,仓库 https://hub.docker.com2.Docker 安装前提说明2.1 CentOS Docker 安装Docker支持以下的CentOS版本:CentOS 7 (64-bit) 推荐使用7 默认的是7CentOS 6.5 (64-bit) 或更高的版本2.2 前提条件目前,Cen...

2020-03-11 17:43:45 185

原创 Docker系列教程01_Docker概述

1.什么是dockerDocker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。项目后来加入了Linux基金会,遵从了Apache2.0协议,项目代码在GitHub上进行维护。Docker自开源后受到广范的关注和讨论,以至于dotCloud公司后来都改名为Docker Inc。RedHat已经在其RHEL6.5中集中支...

2020-03-11 17:40:56 246

原创 java常用类09_Math_UUID和枚举类

1.Math类java.lang.Math提供了一系列的方法用于科学计算,而且都是静态的。Math类的静态属性:Math.PI圆周长与其直径的比率,也就是圆周率。【示例】计算圆周长// 半径double radius = 5.0;// 计算圆周长double circumference = 2*Math.PI*radius;// 圆周长:3.141592653589793S...

2020-03-10 21:54:39 288

原创 java常用类08_File类

1.File类基本用法java.io.File类:代表文件和目录。在开发中,读取文件、生成文件、删除文件、修改文件的属性时经常会用到本类。File类的常见构造方法:public File(String pathname)pathname代表文件路径,该路径可以为相对路径,也可以为绝对路径。如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。【示例】分别以相对路...

2020-03-10 21:49:59 130

原创 java常用类07_时间处理类(下)

1.LocalDate类LocalDate是一个不可变的日期时间对象,表示日期,通常被视为年月日。也可以访问其他日期字段,例如日期,星期几和星期。例如,值“年月日”可存储在。import java.time.LocalDate;public class Test { public static void main(String[] args) { // 获取现在的时间 LocalD...

2020-03-10 21:48:57 106

原创 java常用类06_时间处理类(上)

1.时间处理类概述“时间如流水,一去不复返”,时间是一个一维的东东。所以,我们需要一把刻度尺来区表达和度量时间。在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)。我们用long类型的变量来表示时间,从基准时间往前几亿年,往后几亿年都能表示。如果想获得现在时刻的“时刻数值”,可以使用:long now = System.cu...

2020-03-10 21:48:28 173

原创 java常用类05_StringBuilder类

1.StringBuilder类概述StringBuffer类和StringBuilder类非常类似,都是继承自抽象类AbstractStringBuilder类,均代表可变的Unicode字符序列。StringBuilder类和StringBuffer类方法几乎一模一样,不过StringBuilder不是线程安全的,这是和StringBuffer的主要区别:StringBuffer线程安...

2020-03-10 21:47:32 119

原创 java常用类04_StringBuffer类

1.StringBuffer类概述String和StringBuffer都可以用来存储和操作字符串,即包含多个字符的字符串数据。String类代表不可变的Unicode字符序列,是字符串常量。String字符串一旦被初始化后,就不能再被改变其内容了(其原理在String类概述中已经讲述)。对String字符串的操作实际上对其副本(原始拷贝)的操作,原来的字符串一点都没有改变。比如:String...

2020-03-10 21:46:35 221

原创 java常用类03_String类

1.String类概述String 类对象代表不可变的Unicode字符序列。什么叫做“不可变的对象”?指的是对象内部的成员变量的值无法再改变。我们打开String类的源码:我们发现字符串内容全部存储到value[]数组中,而且该数组是final类型,也就是常量(即只能被赋值一次),这就是“不可变对象”的典型定义方式。虽然字符串本身不能改变,但是String类型变量中记录的地址值是可以改变...

2020-03-10 21:42:43 151

原创 java方法03_递归结构

1.递归的定义编程语言中,方法直接或间接调用方法本身,则该方法称为递归方法(核心思想就是自己调用自己)。2.递归的使用利用递归可以用简单的程序来解决一些复杂的问题。递归结构包括两个部分:定义递归头什么时候不调用自身方法。如果没有头,将陷入死循环。递归体什么时候需要调用自身方法。【随堂练习】1、计算n的阶乘。2、假如有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第...

2020-03-10 21:33:20 92

原创 java常用类02_包装类(下)

1.自动装箱拆箱自动装箱和拆箱就是将基本类型和包装类进行自动的互相转换。JDK1.5后,将自动装箱(autoboxing)和拆箱(unboxing)引入java中。2.1自动装箱和自动拆箱基本类型数据处于需要对象的环境中时,会自动转为“对象”,这就称为自动装箱。我们以Integer为例:在JDK1.5以前,这样的代码 Integer i = 5 是错误的,必须要通过Integer i = ...

2020-03-09 14:45:26 81

原创 java常用类01_包装类(上)

1.包装类的概述java是面向对象的语言,但不是“纯面向对象”,基本数据类型就不是对象。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。比如:Object[]数组操作中,我们就需要将基本类型数据转化成对象!为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。包装类均位于java.lan...

2020-03-09 14:44:26 118

原创 java输入输出流14_RandomAccessFile类

1.RandomAccessFile类概述这个是JDK上的截图,我们可以看到它的父类是Object,没有继承字节流、字符流家族中任何一个类,不属于IO流。RandomAccessFile类的主要功能是完成随机读取功能,可以读取指定位置的内容。之前的File类只是针对文件本身进行操作的,而如果要想对文件内容进行操作,则可以使用RandomAccessFile类,此类属于随机读取类,可以随机读取...

2020-03-09 14:22:38 232

原创 java输入输出流13_复制文件夹案例

复制文件夹中的所有文件和文件夹到另一个文件夹中,因为这个需求相对比较简单,这里就直接上代码了。【示例】复制文件夹操作/** * 复制文件夹操作 * @param sourceDir 源文件夹 * @param destDir 目标文件夹 * @throws FileNotFoundException */public static void copyDir(File source...

2020-03-09 14:21:25 163

原创 java输入输出流12_文件切割合并案例

1.切割文件案例将一个媒体文件切割成多个碎片(每个碎片的大小为1M),并添加配置文件来保存被切割文件的个数。实现步骤:第一步:创建(指定)一个文件夹,用于保存切割出来的碎片文件。第二步:创建需要切割的文件。第三步:对文件进行切割处理。读取需要切割的文件,每次读取1M的数据。每个缓冲区获取到碎片时,使用输出对应流对象写入到一个新的文件。通过配置文件保存切割文件的个数(方便...

2020-03-09 14:20:59 214

原创 java输入输出流11_Properties集合

1.Properties类概述Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,...

2020-03-06 20:30:14 272 1

使用最简单 最全面的图文混排

使用最简单 最全面的图文混排 github链接:https://github.com/zhouande/TLAttributedLabel

2015-08-24

空空如也

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

TA关注的人

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