- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 Spring核心必备
依赖注入会将所依赖的关系自动交给目标对象,而不是让对象自己去获取锁。依赖注入的方式之一:构造器注入。传入的探险类型是Quest,也就是所有探险类型必须实现的一个接口。这里的BraveKnight 没有与任何特定的Quest实现发生耦合。这就是松耦合。 如果一个对象只通过接口(而不是具体实现或初始化过程)来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同...
2018-10-26 09:14:40
248
原创 后台开发必会的Oracle语句
通过select...into 从数据库中查数据对变量进行赋值declarename varchar2(50) default 'null';begin select sname into name from student where sno='120001'dbms_output.put_line(name);end; 使用常量计算圆面积declarep...
2018-08-25 15:24:35
487
原创 Git入门(五) 标签设置、配置别名
标签管理发布一个版本,会先再版本库上打一个标签,这样就唯一确定了打标签时刻的版本,容易记住,跟其所指定的commit绑在一起创建一个新标签git tag v1.0查看所有标签git tag查找历史提交的commit idgit log --pretty=oneline --abbrev-commit对指定的提交打标签git tag v1.2 ec14609查...
2018-08-17 17:12:31
253
原创 git入门(四)Git分支相关
创建并合并分支git每次的提交都会把它们串成一条线,这条时间线就是一个分支。master分支这条目前仅有的时间线,叫主分支,HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以HEAD指向的就是当前分支。起初,master分支时一条线,GIt用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点。每次提交,...
2018-08-17 17:09:31
331
原创 Git入门(三) 远程仓库
远程仓库1.创建SSH KEYssh-keygen -t rsa -C “yourEmail”会生成id_rsa(公钥)和id_rsa.pub(私钥)这两个文件2.登录Github如果出现访问gitub慢的问题请这样做修改hosts文件192.30.253.113 github.com192.30.253.118 gist.github.com当前两个地址不是绝...
2018-08-17 16:58:22
223
原创 Git入门(二) 工作区状态、版本回退、Git的缓存区和工作区、Git操作文件
掌握工作区状态修改reademe.txt文件Git is a new version control system.Git is free software.运行git statusXIA@XIA-PC MINGW64 /g/git (master)$ git statusOn branch masterChanges not staged for commit:...
2018-08-17 16:52:17
1512
原创 Git入门(一) GIt安装、创建资源库
git安装并创建资源库windows 下载地址:https://git-scm.com/downloads默认选项安装后在开始-菜单中找到Git -> Git Bash安装完成后还需要设置最后一步:git config --global user.name “your name”git config --global user.email “your email”...
2018-08-17 16:45:49
788
1
原创 jvm之详解class类文件的结构
Class文件是一组以8位字节为基础单位的二进制流。各个数据项严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分割符。Class文件结构采用类似C语言的结构来存储数据的,主要有两类数据项,无符号数和表。 Class文件中按照严格 的顺序排列的字节流包含的数据:ClassFile{u4 magic;u2 minor_version;u2 major_versi...
2018-08-08 18:05:35
1643
1
原创 jvm之垃圾收集器与内存分配
对象已死吗引用计数算法给对象添加一个医用计数器,每当有一个地方引用它时,计数器就加1 ;当引用失效时,计数器值就减1。虚拟机并不是通过引用计数算法来判断对象是否存活的。可达性算法通过一系列的“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所经过的路径成为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明对象是不可用的。Java语言中,可作为G...
2018-08-07 17:40:13
216
原创 JVM对象以及内存溢出异常
HotSpot虚拟机对象探秘对象的创建虚拟机遇到new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,检查这个符号引用代表的类是否被加载,解析和初始化。 类加载通过后,虚拟机将为对象分配内存。对象所需内存的大小在类加载完成后便可完全确定。(假设Java堆中内存是绝对规整的,使用“指针碰撞”方法,如果不是规则的,就使用“空闲列表”分配方式)指针碰撞:所有用过的内...
2018-08-07 17:33:27
369
原创 浅谈Java虚拟机运行时数据区域
运行时数据区域 程序计数器程序计数器是一块较小的内存空间,可以看做是当前线程执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。(线程私有)每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储。java虚拟机栈...
2018-08-06 10:20:31
181
原创 java多线程之Thread-per-Message模式
Thread-per-Message模式(这项工作就交给你了)当你很忙碌的时候,这个时候公司楼下有个快递,于是你委托你的同事帮你拿一下你的快递,这样你就可以继续做自己的工作了在Thread-Per-Message模式中,消息的委托端和执行端是不同的线程,消息的委托端会告诉执行端线程,这个工作就交给你了 下面来看一段实例代码: Host类:针对请求创建线程的类,主要通过开启新的线程,调用helpe...
2018-07-12 16:05:46
198
原创 Dom4j的Java工具类
package resolverXml;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.OutputStream;import jav...
2018-07-12 16:05:25
649
原创 Mysql连接查询的优化
通俗的讲内连接只会查出满足on条件下的记录,外连接则是会查出(tab a left join tab b),不管tab a的记录与tab b的记录是否匹配,tab a都会有记录,只是tab b的记录为不为空而已,右连接则相反 在使用left join (或 right join )时,应该清楚的知道一下几点:1.on与where的执行顺序on 条件(A left join B on 条件表达式中的...
2018-06-05 16:35:51
5107
原创 java多线程设计模式之Two-Phase Termination
Two-Phase Termination分两阶段终止的意思,它是一种先执行完终止处理再终止线程的模式 先从“操作中” 状态变为“终止处理中”状态,然后再真正的终止线程,这就是Two-Phase Termination模式该模式的要点如下:安全地终止线程(安全性)必定会终止处理(生存性)发出终止请求会尽快进行终止处理(响应性) 程序实例:CountupThread 表示进行计数的线程的类Main ...
2018-05-30 17:37:39
357
原创 java多线程模式之 Future模式
Future模式假如有一个方法需要花费很长时间才能获取运行结果,那么,与其一直等待结果,不如先拿一张“提货单”。 实例类图: Host类:创建FutureData的实例启动一个新线程(相当于制作蛋糕的蛋糕店),用于创建RealData的实例将FutureData的实例作为返回值返回给调用者其中future.setRealData(realdata);相当于在顾客拿着提货单来取货之前制作蛋糕的过...
2018-05-28 18:23:19
273
原创 java多线程之Worker Thread模式
Worker Thread模式(工作没来,就一直等,工作来了就干活)Worker的意思是工作的人,在worker Thread 模式中,工人线程(worker thread)会逐个取回工作并进行处理,当所有的工作全部完成后,工人线程会等待新的工作来。 下面来看看程序实例图: ClientTread 表示发出工作请求的线程的类Request 表示工作请求的类Channel 接收工作请求并将工作请求交...
2018-05-25 18:00:33
5946
原创 java多线程模式之Thread-per-Message模式
Thread-per-Message模式(这项工作就交给你了)当你很忙碌的时候,这个时候公司楼下有个快递,于是你委托你的同事帮你拿一下你的快递,这样你就可以继续做自己的工作了在Thread-Per-Message模式中,消息的委托端和执行端是不同的线程,消息的委托端会告诉执行端线程,这个工作就交给你了 下面来看一段实例代码: Host类:针对请求创建线程的类,主要通过开启新的线程,调用helpe...
2018-05-25 17:07:33
817
原创 java多线程模式之Read-Write Lock 模式
6. Read-Write Lock模式大家一起读没问题,但读的时候不要写哦 在Read-Write Lock模式中,读取操作和写入操作是分开考虑的,在执行读取操作之前,线程必须获取用于读取的锁,而在执行写入操作之前,线程必须获取用于写入的锁。由于当线程执行读取操作时,实例的状态不会发生变化,所以多个线程可以同时读取,但在读取的时候,不可以写入。当线程执行写入操作时,实例的状态就会发生变化。因此,...
2018-05-21 18:47:32
478
原创 java多线程设计之Producer-Consumer模式
生产者安全地将数据交给消费者。producer是生产者的意思:指生产数据的线程,consumer是消费者的意思,指的是使用数据的线程。例如消费者想要获取数据,可数据还没生成,或者生成者想要交付数据,而消费者的状态还无法接受数据这样的情况。这个时候Producer-Consumer模式在生产者和消费者之间加入了一个“桥梁角色”,该桥梁角色用于消除线程间处理速度的差异。 这是一个实例图,方便理解Pro...
2018-05-17 11:15:41
1644
原创 java多线程之Balking模式
Balking模式(不需要就算了)如果现在不适合执行这个操作,或者没必要执行这个操作,就停止处理,直接返回----这就是balking模式 下面看一个相关源码的实例Data类用于表示当前数据filenname表示文件的名称,context表示写入文件的内容,changed表示context值是否被修改change()方法修改context内容,同时设置changed为truesave()方法先检查...
2018-05-14 17:25:07
254
原创 java多线程之Guarded Suspension模式
Guarded Suspension模式(等我准备好哦)在Single Threaded Execution模式中,只要有一个线程进入临界区,其他线程就无法进入,只能等待。而在Guarded Suspension模式中,线程是否等待取决于守护条件。Guarded Suspension模式是在Single Threaded Execution模式的基础上附加了条件而形成的。 如下一段代码实例: r...
2018-05-14 17:16:35
485
原创 java多线程之Immutable模式
ImmutableImmutable(不可变的),Immutable角色是一个类,在这个角色中,字段的值不可修改,也不存在修改字段内容的方法。Immutable角色的实例被创建后,状态将不再发生变化。无需将Immutable角色的方法声明为synchronizedImmutable模式的类图: 何时使用Immutable:1. 实例创建后,状态不再发生变化时字段声明为final,不存在setter...
2018-05-12 16:59:05
428
原创 java多线程设计——线程启动,互斥,Single Threaded Execution
1.线程的启动顺序,并发,并行顺序:用于表示多个操作“依次处理”。比如把十个操作交给一个人处理,这个人就得一个一个地按顺序来处理并行:用于表示多个操作“同时处理”。比如把十个操作交给两个人处理,这两个人就会并行处理。并发:将操作打散成多个步骤,然后依次执行,就像是说一个人同时做好几件事,但是他执行的动作是先做这件事,然后停下来再做另一件事。 实际上运行的线程就像上面这样在不断切换,顺序执行并发处理...
2018-05-10 20:34:30
225
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人