自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (4)
  • 收藏
  • 关注

原创 Java基础——Collections框架

1.Java集合框架图Collection接口有两个子接口:List和Set. (List接口允许null,可以重复,具有存储顺序;Set接口允许null,不可以重复)2、List接口有3个实现类分别是:ArrayList、LinkedList、Vector,它们的共同点以及不同点是:(1)ArrayList和Vector都是索引速度快,插入数据慢ArrayList和Vect...

2018-12-29 22:35:02 1174 3

转载 Java基础——Collection和Collections的区别

来自:https://www.cnblogs.com/cathyqq/p/5279859.html我们常说的Collections框架中包含了大量集合接口以及这些接口的实现类和操作它们的算法。主要包含两大接口:Collection和Map.Collection的子接口有List、Set.Map的子接口有SorteMap,以及实现类HashMap等。这些接口与各自的实现类关系...

2018-12-29 21:17:14 635

转载 Java基础——与时间相关的类

来自:https://www.cnblogs.com/caoyc/p/4546527.html           https://www.cnblogs.com/fulitaiblogs/p/3763155.html一、Data及其常用API1、简介  Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间,精确到毫秒。是用距离一个固定时间点的毫秒数(可...

2018-12-27 23:19:31 287

转载 Java基础——静态方法

 本文转自:https://www.cnblogs.com/dyj-blog/p/8867028.html1. 序:什么是静态工厂方法在 Java 中,获得一个类实例最简单的方法就是使用 new 关键字,通过构造函数来实现对象的创建。就像这样: Fragment fragment = new MyFragment(); // or Date date ...

2018-12-27 21:41:32 188

原创 Java基础——数组

1. Java中数组是什么?数组是不是对象? 数组是指具有相同类型的数据的集合,它们一般具有固定的长度,并且在内存中占据连续的空间。在C/C++语言中,数组名只是一个指针,这个指针指向了数组的首元素,既没有属性也没有方法可以调用,而在Java语言中,数组不仅有自己的属性(例如length属性),也有一些方法可以调用(例如clone方法)。由于对象的特点是封装了一些数据,同时提供了一些属性和...

2018-12-27 21:09:04 157

原创 Java基础——String、StringBuilder、StringBuffer

1.共同点都可以对字符串进行操作。2.区别这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面(1)运行速度      运行速度快慢为:StringBuilder > StringBuffer > String  String最慢的原因:  String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即Stri...

2018-12-27 19:53:58 350

原创 Java基础——字符串

1. 字符串不是基本数据类型,而是一个类Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,叫做String。每个用双引号括起来的字符串都是String类的一个实例。Java里面预定义是指,已经定义好的类,例如String,Integer等等;这些预定义的类都在java.lang包里面,jvm默认会加载这个包里面的所有类到JVM。对于其他预定义类,例如java.u...

2018-12-24 15:06:04 214

原创 Java基础——数据类型

1. 数据类型  C和C++中,int和long等类型的大小与目标平台相关。而在Java中,所有的数值类型所占据的字节数量与平台无关,保证了良好的可移植性。 此外,Java中的数值类型都是有符号的,不存在无符号的数。Java中,整型值和布尔值之间不能进行相互转换。Java中,默认声明的小数是double类型的,因此对float类型的变量进行初始化时需要进行类型转换,即...

2018-12-23 11:47:46 241

原创 Java基础——继承、多态

1. 面向对象的特征我们都知道,java是面向对象的语言,那么面向对象的有哪些特征呢?(1)抽象:将客观事物的共性抽象出来,并将这些属性归为一个类。        包括两个方面:过程抽象;数据抽象(2)继承:一个新类可以从现有的类中派生。(3)封装:将客观事物抽象成类,每个类对自身的数据和方法实现保护。(4)多态:主要有两种表现方式:方法的重载;方法的覆盖。抽象和封装比...

2018-12-22 21:51:45 188

原创 Java基础——java程序初始化顺序、构造函数

1. Java初始化顺序当实例化对象时,对象所在类的所有成员变量首先要进行初始化,只有当所有类成员完成初始化后,才会调用对象所在类的构造函数创建对象。3个原则:(1)静态对象(变量)优先于非静态对象(变量)初始化。其中,静态对象(变量) 只初始化一次,而非静态对象(变量)可能会初始化多次。(2)父类优先于子类进行初始化。(3)按照成员变量的定义顺序进行初始化。即便变量定义散...

2018-12-22 15:51:18 246

原创 Java基础——静态变量、成员变量、局部变量

1. 变量的类型在java语言中,变量的类型有3中:成员变量、静态变量、局部变量(1)成员变量当类被实例化时,成员变量就会在内存中分配空间被初始化,直到这个实例化对象的生命周期结束时,成员变量的生命周期才结束。所以,类的成员变量的作用范围与类的实例化对象的作用范围相同。(2)静态变量由static关键字修饰的成员变量被称为静态变量。类似于C++中的全局变量。静态变量不依赖于特定...

2018-12-22 15:14:18 1325

原创 Java基础——对main方法的理解

1. 对main方法的理解public static void main(String[ ] args) 为Java程序的入口。public: 权限修饰符,表明任何类或对象都可以访问。static:“静态”,表明main方法是一个静态方法,方法中的代码存储在静态存储区,只要类被加载后,就可以使用该方法而不需要通过实例化对象来访问,可以直接通过类名.main()直接访问。void: ...

2018-12-22 13:49:40 728

原创 Java基础——java的优点以及与C++的不同

1. Java的优点Sun Microsystems公司对Java语言的描述:"Java is a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral,  portable, high-performance, multithreaded, and dynamic lan...

2018-12-22 11:32:03 655 1

原创 安装MySQL的错误——拒绝安装

安装MySQL总是出现各种错误,总是安装拒绝,原来是因为没有用管理者身份运行cmd.exe.感谢博文:https://blog.csdn.net/weixin_42474227/article/details/80717163  ...

2018-12-07 21:27:54 7237

原创 Java并发——并发集合

正在学习这一章,对看过的资料进行了总结。来源:http://ifeve.com/concurrent-collections-1/           https://www.cnblogs.com/esther-qing/p/6492299.html1. Java的集合框架集合类主要负责保存数据,因此集合类也被称为容器类。Java容器类的用途是”保存对象”,并将其划分为两个不...

2018-11-29 17:04:53 215

原创 Java并发——锁框架(三)读写锁

1. 读写锁机制——ReadWriteLock接口读写锁适用于对数据结构频繁读而较少修改的场景。举个栗子,你可以创建一个在线词典供多条读线程并发读取,然而单条写线程可能会不时添加新的定义或更新已有的定义。一个资源可以被多个线程同时读,或者被一个线程写,但是不能同时存在读和写线程。 基本规则: 读读不互斥 、读写互斥 、写写互斥。问:既然读读不互斥,为什么还要加读锁?答:如果读可以...

2018-11-29 15:45:35 192

原创 Java并发——使用Condition线程间通信

1. Java中线程协作的最常见的两种方式:利用Object.wait()、Object.notify()和使用Condition(1)复习一下Object.wait()、Object.notify()在java中,对于任意一个java对象,它都拥有一组定义在java.lang.Object上监视器方法,包括wait(),wait(long timeout),notify(),notify...

2018-11-29 11:36:01 162

原创 Java并发——锁框架(二)重入锁ReentrantLock

1. 重入锁重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。重进入是指任意线程在获取到锁之后能够再次获取该锁而不会被锁阻塞。两个关键问题:(1)线程再次获取锁。当一条线程持有这个锁并且调用lock()、lockUninterruptibly()或者任意一个tryLock()方法重新获取锁,这个锁的持有量就递增1.(2)释放锁。当线程调用unlock()...

2018-11-29 10:07:22 122

原创 Java并发——锁框架(一)

来源:《Java线程与并发编程实践》以及         https://blog.csdn.net/qq_38293564/article/details/804766591. 锁框架java.util.concurrent.locks包提供了一个包含多种接口和类的框架,它针对条件进行加锁和等待。2. synchronized关键字的缺陷(1)如果一个代码块或方法被syn...

2018-11-28 21:01:59 221

原创 Java并发——Phaser “阶段器”

1. PhaserPhaser是一个更加弹性的同步屏障。类java.util.concurrent实现了Phaser.这段文字转自:https://blog.csdn.net/u010739551/article/details/51083004 Phaser表示“阶段器”,用来解决控制多个线程分阶段共同完成任务的情景问题。其作用相比CountDownLatch和CyclicBarr...

2018-11-25 11:24:18 633

原创 Java并发——信号量Semaphore

1. 信号量Semaphore信号量维护了一组许可证,以约束访问被限制资源的线程数。类java.util.concurrent.Semaphore实现了信号量。这段文字转自:https://blog.csdn.net/zbc1090549839/article/details/53389602 在java中,使用了synchronized关键字和Lock锁实现了资源的并发访问控制...

2018-11-24 21:23:30 309 1

原创 Java并发——交换器

1. 交换器交换器提供了一个线程彼此之间能够交换对象的同步点。泛型类java.util.concurrent.Exchanger<V>实现了交换器。Exchanger<V>类中的主要方法就是:exchange(V x)方法,成对的两个线程之间,都调用了该方法,就能在两个线程彼此都准备好数据后,成功的交换数据给对方,然后各自返回。如果想支持成对的两个线程之间,一个...

2018-11-24 17:26:41 300

原创 Java并发——同步屏障

1.同步屏障同步屏障允许一组线程彼此相互等待,直到抵达某个公共的屏障点。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。举个简单的例子就是:旅游团带着一帮人参观景点,规定在下一个景点A处集合,于是导游就在景点A等着大家,导游就是这个集合点或者说屏障,直到所有的游客集合完毕,导游才会带着大家继续参观...

2018-11-24 15:57:29 365

原创 Java并发——倒计时门闩

1. 倒计时门闩同步器倒计时门闩会导致一条或多条线程在“门口”一直等待,直到另一条线程打开这扇门,线程才得以继续运行。它是由一个计数变量和两个操作组成的,这两个操作分别是“导致一条线程等待直到计数变为0”以及“递减计数变量”。类java.util.concurrent.CountDownLatch实现了倒计时门闩同步器。应用场景:比如流水线,后面的工序必须等到前面的工序做完之后才能继续...

2018-11-24 10:31:32 1072 3

转载 Java并发——Executor框架(二)

总结看过的资料,方便自己学习。来源:https://blog.csdn.net/zxm490484080/article/details/80886243前面学习了Executor框架的组成,Executor和ExecutorService的区别,以及ExecutorService常用方法的使用接下来学习Executors类.1. Executors类是java.util....

2018-11-22 15:38:44 128

原创 Java并发——Executor框架(一)

对看过的资料进行了整理,方便自己学习来源:https://www.cnblogs.com/love-Stefanie/p/6728228.html           https://www.cnblogs.com/MOBIN/p/5436482.html1. Executor框架包括:线程池,Executor,Executors,ExecutorService,Complet...

2018-11-22 10:22:04 173

原创 Java并发——定时器框架

1. 定时器框架类Timer和TimerTask组成了Timer框架。Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。import java.util.Timer;import java.util...

2018-11-20 21:30:30 712

原创 Java并发——线程局部变量

1. 为什么要使用线程局部变量你?如果创建的对象实现了Runnable接口的类的实例,用它作为传入参数,并创建多个线程对象并启动这些线程,那么所有的线程将共享相同的属性。如果在一个线程中改变一个属性,所有线程都会被这个改变影响。这样,不得不处理同步的问题。要想把线程私有数据(如一个用户ID)和线程关联起来,可以使用线程局部变量 java.lang.ThreadLocal类2. 什么是线...

2018-11-20 11:26:14 351

转载 Java并发——线程组

1.定义一个线程组代表了一组线程;一个线程组也能包含其他线程组,这些线程组形成了一棵树,其中除了初始线程,每个线程组都有一个父线程组。2. 线程的使用:对线程进行批量处理。下面这个博文写的很详细。https://www.cnblogs.com/xrq730/p/4856072.html3.尽管线程组看上去很有用,但存在许多缺陷,最好不使用。...

2018-11-20 10:46:31 99

原创 Java并发——生产者-消费者

//生产者-消费者模型//多线程的典型例子public class ProducerConsumer { public static void main(String[] args) { Shared s = new Shared(); new Producer(s).start(); new Consumer(s).start(); }}class Shared...

2018-11-20 09:42:55 87

原创 Java并发编程——wait()、notify()、notifyAll()

1. wait()、notify()、notifyAll()是java.lang.Object类提供的类函数,用于支持线程间交互 方法名称 描述 void wait() 导致当前线程一直处于等待,直到另外的线程调用这个对象的notify()或者notifyAll()方法,又或者一直等待其他的线程中断当前等待的线程。 void wait(long timeout) 导致...

2018-11-19 20:50:46 256

转载 synchronized和volatile —— 原子性和可见性

原博出处https://blog.csdn.net/guyuealian/article/details/52525724

2018-11-18 20:54:30 434

原创 Java并发——volatile关键字:可见性

(1)volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”,但无法保证“原子性”。(2)volatile不会引起线程上下文的切换,在使用恰当的情况下,比synchronized的使用和执行成本更低.Volatile不需要加锁,比Synchronized更轻量级,并不会阻塞线程(volatile不会造成线程的阻塞;synchronized可能会造成...

2018-11-18 20:28:07 197

原创 Java并发——同步临界区的访问:synchronized关键字

1.临界区:临界区就是必须以串行方式(一次一条线程)方法的一段代码块。同步是通过监听器来实现的。每一个Java对象都和一个监听器相关联,线程通过获取和释放监听器的锁来上锁和解锁。2. 使用synchronized关键字来串行线程对方法和代码块(临界区)的访问Synchronized能够实现原子性和可见性;在Java内存模型中,synchronized规定,线程在加锁时,先清空工作内...

2018-11-18 17:36:00 609

原创 Java线程中的问题——竞态条件、数据竞争

1.竞态条件说得通俗一点,就是线程A 需要判断一个变量的状态,然后根据这个变量的状态来执行某个操作。在执行这个操作之前,这个变量的状态可能会被其他线程修改。典型情况:(1)check-then-actif(a == 10.0){ b = a / 2.0;}在单线程的环境下,不会出现线程安全问题。在多线程环境下,如果a和b是局部变量,也不会出现线程安全问题,因为...

2018-11-18 17:08:56 1409

原创 Java并发——Thread和Runnable

1.什么是线程?线程就是一条在程序代码中独立执行的路径。2.什么是runnable?一个runnable就是一段封装在对象中的代码序列,它的类实现了Runnable接口。3.Thread类和Runnable接口完成了什么?类Thread提供了一个底层操作系统线程架构的统一接口。Runnable接口为关联了Thread对象的线程提供执行代码。4.关联一个runnable到...

2018-11-18 15:41:07 230

原创 Java并发编程基础

1.实现多线程的两种方式:(1)继承Thread类; (2)实现Runnable接口//进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换开销比较大,一个进程包含1-n个线程//线程:同一类线程共享代码和数据空间,每个线程拥有独立的运行栈和程序计数器,线程切换开销小//多进程是指操作系统能同时运行多个任务(程序)。//多线程是指在同一程序中有多个顺序流在执行。/...

2018-11-18 11:48:35 179

原创 JDK源代码之String类

1. String类的定义    public final class String implements java.io.Serializable, Comparable<String>, CharSequence可以看到String类被final修饰,因此不能被继承。String类还实现了序列化接口Serializable、可比较的接口Comparable并指定...

2018-09-16 15:20:12 135

转载 Java之String理解

 一、String在内存中的存储情况1.Java虚拟机JVM的内存块及其变量、对象内存空间是怎么存储分配的? 1、栈:存放基本数据类型及对象变量的引用,对象本身不存放于栈中而是存放于堆中              1)、基础类型 byte (8位)、boolean (1位)、char (16位)、int (32位)、short (16位)、float (32位)、doub...

2018-09-16 11:13:54 132

转载 C++实现Lambda表达式

函数式编程,lambda算子。记录一下学习历程。总结一下看过的资料。

2018-01-19 17:09:39 640

左神春招备战公开课文件资料+代码.zip

左神春招备战公开课文件资料+代码,Java求职高频算法题;左神春招备战公开课文件资料+代码;

2019-10-10

秒杀系统.zip

基于springboot的简单秒杀系统及优化(附文档资料),技术栈 springboot+redis+登录验证+前端页面

2019-06-11

基于VHDL语言的数字钟设计

基于Quartus II的数字钟设计 内含整个工程

2016-01-20

空空如也

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

TA关注的人

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