自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

玫瑰与鹿°

总之岁月漫长,然而值得等待

  • 博客(26)
  • 资源 (4)
  • 收藏
  • 关注

原创 趣谈java单例模式

什么是单例模式确保一个类最多只有一个实例,并提供一个全局访问点。就像你是你们家的独生子,一旦邻居跟你爸告状说“你家孩子打架了”,说的只可能是你。单例模式有两种创建方式:懒汉式和饿汉式。在下文会对其进行详细解说。使用场景和优缺点使用场景(1)网站计数器。当需要统计当前在线人数,只能用一个全局对象来记录。(2)应用程序的日志。日志内容一般为共享操作,需要在后面不断写入内容,所以需要单例模...

2019-06-23 10:39:23 851 5

原创 小仙女讲JVM(7)—JVM优化

还以这个图为例,从.java到.class是编译过程,从.class到机器码是解释过程。下面对其进行分别优化。在优化过程中,对编译阶段的优化主要是对前端编译器的优化,在运行阶段的优化,主要是对即时编译器的优化。编译器优化编译过程以上为javac的编译过程图,以下为javac编译过程的主体代码。下面对其步骤进行详细解读1、解析与填充符号表词法分析将源代码的字符流转变为标记(...

2019-06-21 20:31:21 1878 16

原创 小仙女讲JVM(5)—类加载机制

上篇中我们讲解了Class文件,这篇我们说说虚拟机是如何加载这些Class文件的?Class文件中的信息进入到虚拟机后会发生什么变化?这就涉及到了类加载机制。类加载机制是把类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。这一系列的过程都是在程序运行期间完成的。类加载器类加载器就是下图中红框的部分,它通过一个类的全限定名来获取...

2019-06-19 16:36:56 4318 19

原创 小仙女讲JVM(2)—内存的划分

我们知道,在C++语言里,如果想使用一个对象,需要对其进行new操作;如果不用这个对象了,需要对其进行delete操作。一旦开发人员忘记写delete语句了,就会造成内存泄露。【内存被对象占用着不还,就叫内存泄露。】而java就聪明了,它从“手动”进化成了“自动”,把内存的控制权力交给了虚拟机。下面我们就来窥探一下jvm是怎么进行自动内存管理的。这是自动内存管理的思维导图,在本篇我们只说说...

2019-06-18 20:30:50 10459 34

原创 小仙女讲JVM(8)—高效并发

内存模型内存模式是在特定的操作协议下,对特定的内存或高速缓存进行读写访问的过程抽象。其主要目标是定义程序中各个变量的访问规则。主内存和工作内存所有的变量都存储在主内存中,每条线程还有自己的工作内存,其工作内存中是被线程使用到的变量的主内存副本拷贝,线程对变量的读取、赋值等操作都必须在工作内存中进行,而不能直接读取主内存中的变量。内存间交互操作从主内存拷贝到工作内存:顺序地执行read...

2019-06-22 11:23:51 1932 33

原创 小仙女讲JVM(6)—字节码执行引擎

看到下图的java代码的执行过程,你是不是对其流程脱口而出?.java源码被javac编译成.class文件,.class文件被jvm解释成不同的机器码。那本仙女问你一个问题:JVM只有解释的功能吗?如果你回答是,那就太天真了。JVM不仅有解释的功能,还有编译的功能。JVM中的执行引擎在执行java代码的时候,一般有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选...

2019-06-21 16:34:42 1329 13

原创 小仙女讲JVM(4)—类文件结构

讲完了自动内存管理,我们来说说执行子系统。执行子系统讲解的是JVM如何执行程序。Class文件概述这篇我们只讲讲Class文件。Class文件又名类文件或字节码文件。javac将.java文件(源代码)编译成.class文件(字节码),jvm再将.class文件解释成机器码。Class文件中包含的是Java虚拟机指令集和符号表以及若干其它辅助信息。其是一组以8字节为基础单元的二进制流,没...

2019-06-19 14:55:45 2540 7

原创 小仙女讲JVM(3)—垃圾收集机制

在上一篇中我们说过,自动内存管理分为两部分:给对象分配内存和回收分配给对象的内存。这篇我们说说后者,即回收分配给对象的内存。回收内存要用到垃圾收集机制,英文名儿是GC(Garbage Collection)。在本部分我们要解决如下几个问题:哪些内存需要回收?什么时候回收?如何回收?哪些内存需要回收?堆和方法区的内存需要回收,其余的不需要回收。因为只有堆和方法区是线程共享的,其余...

2019-06-19 11:49:16 3292 18

原创 小仙女讲JVM(1)—综述

大家好,自从上次讲了软考课程之后,本仙女受到了社会各界的一致好评。本仙女怀着用毕生所学回报社会的热忱,打算花大手笔进行JVM的讲解。1、首先,对以上的四部分进行解释。(1)自动内存管理讲的是java运行时数据区里的部分,分为内存划分和垃圾收集器。(2)执行子系统讲的是画红圈的三部分:类文件结构、类加载机制、字节码执行引擎。(3)优化分别为编译期优化和运行期优化。(4)并发讲的是虚拟机...

2019-06-18 16:04:03 38334 163

原创 多线程是啥?有啥用?(下)

通信线程是独立运行的,它并不知道进程中是否还有其它线程存在。为了协调线程之间的运行,可以使用线程通信。(1)在Synchronized中wait()——等待导致当前线程等待,直到其它线程调用该同步监视器的nofity()/nofityAll()方法。调用当前线程会释放对改同步监视器的锁定。nofity()/nofityAll()——唤醒nofity():唤醒此同步监视器上等待的...

2019-06-11 21:48:45 768 1

原创 多线程是啥?有啥用?(上)

以前对多线程已经总结过:【java高级】简说多线程(上)【java高级】简说多线程(下)现在又翻看多线程,对其理解的更系统了,现总结如下。线程的操作(1)线程的生命周期新建当程序使用new关键字创建了一个线程之后,该线程就处于新建状态。此时它和其它的java对象一样,仅仅由jvm为其分配内存,并初始化其属性的值。就绪jvm为其创建方法调用栈和程序计数器,此时的线程表示...

2019-06-11 21:26:42 1877

原创 细解==和equals的区别

两个的区别是什么呢?

2019-06-09 09:18:06 534 2

原创 说说几个关键字的作用(this、super、final、static、abstract)

this代表对当前所在类的引用。super代表对父类对象的引用,用于子类虽然重写了父类的某个方法,但是依旧想调用父类的这个方法。final类,变量,方法等加上它,就代表了“终止”。static方便在没有创建对象的情况下,对属性和方法进行调用。abstract类和成员方法被abstract修饰后,变为抽象类和抽象方法。对其更细致的讲解,可参看:【java面向对象】细说this...

2019-06-08 16:37:05 1182 1

原创 【java基础】构造器是啥?有啥用?

概念构造器是一个特殊的方法,其用于创建对象时执行初始化。什么叫做初始化?就是给对象赋值。java类必须包含一个及以上的构造器。构造器的名字必须与类名相同默认构造器不过即使在创建对象时没有写构造器也不用担心,因为系统会默认提供一个无参数的构造器。此构造器能对各种数据类型进行赋初值。类型初始值数值类型0布尔类型false引用类型null自定义...

2019-06-08 16:08:57 5065 5

原创 【java基础】基础类库是啥?有啥用?

基础类库就是JDK提供了一个类库,从库里选出类来,调用其方法实现一些功能。思导用户交互(1)Scanner(2)System(3)Runtime常用类(1)Object和Objects(2)String(3)Math(4)Random(5)BigDecimal时间/日期类(1)Calender(2)格式器正则表达式...

2019-06-08 12:06:32 1601

原创 【java基础】细解常用类

基础类库就是java提供了一个类库,我们开发时可以从库里选出类来,调用其方法去实现一些功能。思导系统相关(1)ScannerScanner可以读取用户的键盘输入,也可以读取文件输入。//System.in代表键盘输入Scanner sc=new Scanner(System.in);//增加下面一行将只把回车作为分隔符sc.useDelimiter("\n");//判断是否还有下...

2019-06-08 10:54:36 515

原创 【java基础】IO流是啥?有啥用?(下)

序列化和反序列化(1)概念序列化:把内存中的java对象转换成二进制字节流,这样就可以把java对象存储在磁盘中,或者在网络中传输了。反序列化:程序从网络或者磁盘中获得二进制流后,将其恢复成原来的java对象。这就是反序列化。下面演示序列化对象的步骤://Person类实现了Serializable接口,则此类的对象就是可序列化的,可在网络中进行传输public class Perso...

2019-06-07 11:31:45 513

原创 【java基础】IO流是啥?有啥用?(上)

今天我们说说java代码中对文件的操作,比如新建删除文件,读取文件内容等。概念File类用于操作文件和目录,可对文件或目录进行新建,删除和重命名等操作。但是如果要访问文件内容本身,就需要用到IO流了。(1)File类使用举例:(2)IO流IO流是……。下面对其分类进行说明。输入流、输出流(按流向不同)这里的输入输出是从程序运行所在内存的角度来说的。举个例子来说,数据从服务器通过...

2019-06-06 21:46:29 2936 2

原创 【java基础】泛型是啥?有啥用?

上一篇博客中,我们讲解了集合,这篇我们讲讲泛型。那集合和泛型是什么关系呢?泛型是干嘛的呢?泛型怎么用呢?WHAT泛型,就是允许在定义类、接口、方法时使用类型形参,在声明变量、创建对象、调用方法时再传入实际的类型参数。像List代表了只能存放String类型的对象的List集合。在java中这样用://创建一个只能存放String类型的List集合List<String> a=...

2019-06-06 10:58:55 755

原创 【java基础】细说集合(3)—Queue集合、Map集合

Queue

2019-06-06 10:03:42 672

原创 【java基础】细说集合(2)—Set集合、list集合

12

2019-06-04 16:05:20 274

原创 【java基础】细说集合(1)—Collection接口

在上一篇中我们说了数组,这一篇我们说说集合。集合和数组的本质是一样的,都是对一组数进行操作。至于数组和集合的区别,可以查看<【java基础】数组是啥?有啥用?>,在此不再赘述。集合是可以储存数量不确定的不同对象的容器。java的集合类主要由2个接口派生:Collection和Map。具体可参考如下。CollectionCollection是Set接口、Queue接口、List...

2019-06-04 11:38:28 306

原创 浅谈select常用语句

select语句的功能是查询数据。下面是几个“易忽略”的点。单表查询(1)数据列可当做变量来使用//查询出teacher_id+5的结果select teacher_id+5 from teacher_table;//无敌的null。不管是算术表达式还是字符串连接运算中,只要出现null,则结果一定是nullselect concat(teacher_name,null)from...

2019-06-02 20:29:12 702 2

原创 细解mysql事务的使用

事务的概念和必要性事务是由一步或几步数据库操作序列组成的逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。以银行转账为例,要么转账成功,要么转账失败,总不能一方提示转账成功了,但是另一方却未收到款吧。事务具备4大特性:ACID。mysql的事务支持自动提交和事务是两个相对的概念,“有我没你”。自动提交是输入了一条sql语句,这条语句将会立即保存到数据库里。事务是需要输入完几条sql语...

2019-06-02 09:39:02 157

原创 浅谈MySQL约束

约束是在表上强制执行的数据校验规则,比如我们在主键上添加一个非空约束,则一旦添加的主键值为空的话,就会报错,从而添加不进去。(1)非空约束-not null非空约束指某列不能为空。create table people( age int not null) 特点:(1)所有数据类型的值都可以是null,如int,float,char等。(2)空字符串、0、null三者是不...

2019-06-01 20:31:09 156

原创 【java基础】JDBC是啥?有啥用?

JDBC、SQL、Mysql三者的关系是:概念(1)JDBC连接数据库的步骤1、加载数据库驱动,运用的是Class类的forName()静态方法来加载驱动。对,你没看错,这就是用的java反射。2、通过DriverManager获取数据库连接。3、通过Connection对象创建Statement对象。4、使用Statement执行sql语句。5、操作结果集6、回收数据库资源co...

2019-06-01 09:23:35 2373 1

用Springboot实现登录demo

用Springboot实现的登录小demo,没用到任何安全框架等技术,适合入门者学习。

2019-07-28

Redis在java中的使用示例

Redis在java中的使用示例,里面写了对4种类型的具体使用:string、list、set、hash

2018-11-03

springmvc的第一个demo

自己敲的,亲测能运行的springmvc的项目。如果需要但没有积分,可以私聊我,免费分享给你。

2018-10-31

《可伸缩服务架构框架与中间件》-dubbo的demo

这是《可伸缩服务架构框架与中间件》中dubbo部分的例子——HelloWorld。这本书对初学者不友好,讲解的不是很细致,有些必须配置也没有提及。小编的例子(dubbo+zookeeper+maven+Idea)对此进行了完善:https://blog.csdn.net/qsbbl/article/details/82893505

2018-09-29

空空如也

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

TA关注的人

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