- 博客(26)
- 收藏
- 关注
原创 git版本回退
1、查看历史记录git log 查看提交历史,git reflog查看命令历史 git log --pretty=oneline 2、回退版本--回退至上一版本git reset --hard HEAD^--回退至上上版本git reset --hard HEAD^^--回退至指定版本git reset --hard 1094a此处HEAD指向的版本...
2018-08-24 23:12:20
215
原创 git初始化配置
1、初始配置,global表示全局配置$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"2、git创建版本库git init$ mkdir learngit$ cd learngit$ pwd/Users/michael/learn...
2018-08-24 22:19:51
654
原创 MAC系统安装git
1、终端执行:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2、执行:brew install git3、等待完成后,可以输入版本查询命令,测试是否安装成功git --version...
2018-08-24 21:53:52
1181
原创 设计模式-模板方法(TemplateMethod)模式
抽象基类:/** * 抽象基类,为所有子类提供算法框架 * * 提神饮料 * @author yanghw * */public abstract class AbstractRefreshBeverage { /** *制备饮料的模板方法 */ public void prepareBeverageTemplate(){ //1.将水煮沸 boil...
2018-08-19 15:49:28
169
原创 多线程通信-condition
使用condition使3个线程顺序执行import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ConditionDemo { private in...
2018-08-05 21:32:29
159
原创 生产者-消费者
生产者public class Consumer implements Runnable{ private Tmall tmall; public Consumer(Tmall tmall){ this.tmall = tmall; } @Override public void run() { while(true){ tmall.take(); ...
2018-08-05 20:41:41
183
原创 递归例子
/** * 第一个人10,第2个人加2,递归判断第n个人对应的数字 * @author yanghw * */public class RecursionDemo { public int cal(int num){ if(num == 1) return 10; return cal(num-1) + 2; ...
2018-08-05 13:52:06
170
原创 多线程-MyLock实现
1、计数器线程问题import java.util.Random;public class Sequence { private int value; public int getNext() { return value++; } // 测试 public static void main(String[] args) { Sequence seq = new ...
2018-08-01 22:55:35
1183
原创 多线程-重入锁、死锁
1、重入锁在非静态方法上使用synchronized同步,此时使用的锁为this对象内置锁,若在静态方法则锁表现为当前类的class文件内置锁。内置锁是一种可重入的锁。public class SynchronizedDemo { public synchronized void methodA(){ System.out.println("methodA方法被调用!");...
2018-07-29 23:03:16
186
原创 线程安全-计数器
1、计数器实现存在线程安全问题,主要由于value++非原子性操作导致import java.util.Random;public class Sequence { private int value; public int getNext(){ return value++; } //测试 public static void main(String[] ar...
2018-07-28 20:12:41
1022
原创 基于callable创建线程
基于callbale创建线程,可以获取线程返回值。实际开发中使用FutureTask结合Callable实现多线程并发调用。在调用futreTask的get()方法时该方法为阻塞方法,实际开发中可设置超时时间,超过超时时间会抛出异常进行相应业务提示。import java.util.concurrent.Callable;import java.util.concurrent.Future...
2018-07-28 12:45:50
512
原创 守护线程与线程中断
1、主线程结束,守护线程也会提前结束执行。public class ThreadDemo1 extends Thread{ public ThreadDemo1(String name){ super(name); } @Override public void run() { while(true){ System.err.println(getName() ...
2018-07-28 12:11:17
840
原创 dubbo入门示例1
1、用户指南https://pan.baidu.com/s/1UrZO_qeRczX1nKgJROue4Q核心概念:2、HelloWorld示例
2018-07-11 20:51:54
168
原创 linux防火墙开发特定端口
在虚拟机上进行安装各种软件时,往往容易遇到防火墙未开通导致物理机无法访问服务。1、vim /etc/sysconfig/iptables 编辑文件2、service iptables restart 重启防火墙...
2018-07-10 21:42:41
897
原创 dubbo管控台搭建
1、下载源码https://github.com/apache/incubator-dubbo-ops2、编译源码打出war包在dubbo-admin 目录下执行mvn package -Dmaven.skip.test=true,执行完成后在target目录下有打好的war包...
2018-07-10 21:35:11
287
原创 zookeeper单机环境搭建
1、上传zookeeper-3.4.6.tar.gz至虚拟机sftp put zookeeper-3.4.6.tar.gz2、将tar包解压至指定目录tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local3、修改zookeeper配置文件 zoo.cfgdataDir=/usr/local/zookeeper/dataserver.0=192.168.56.1...
2018-07-09 21:49:41
151
原创 GC回收算法
1、引用计数法(没有被java使用)对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0,则对象A就不可能再被使用。引用计数法存在如下问题: 引用和去引用伴随加法和减法,影响性能 很难处理循环引用2、标记-清除标记-清除算法是现代垃圾回收算法的思想基础。标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段...
2018-07-03 21:01:58
4257
3
原创 jvm栈大小设置
1、栈内存大小设置栈内存为线程私有的空间,每个线程都会创建私有的栈内存。栈空间内存设置过大,创建线程数量较多时会出现栈内存溢出StackOverflowError。同时,栈内存也决定方法调用的深度,栈内存过小则会导致方法调用的深度较小,如递归调用的次数较少。-Xss:如-Xss128k通常只有几百K决定了函数调用的深度每个线程都有独立的栈空间局部变量、参数 分配在栈上2、递归调用package c...
2018-07-02 20:33:06
19738
1
原创 堆的分配参数
1、堆内存分配参数-Xmx –Xms指定最大堆和初始堆内存大小(两个参数设置一样可减少垃圾回收)-Xmx20m –Xms10m:指定最大堆内存20M,初始化堆内存10Mpackage com.thread.study;public class Heap { public static void main(String[] args) { //最大堆内存 System.out.p...
2018-07-01 22:19:04
838
原创 JVM配置-trace跟踪参数配置
1、常用JVM配置参数Trace跟踪参数堆的分配参数栈的分配参数1.1Trace跟踪参数打印GC信息:-verbose:gc-XX:+PrintGC-XX:+PrintGCDetails打印GC详细信息-XX:+PrintGCTimeStamps打印CG发生的时间戳各个参数效果:package com.thread.study;public class GCPrint { public ...
2018-06-30 19:53:38
1321
原创 设计模式-单例模式
1、单例模式单例模式有“饿汉模式”和“懒汉模式”两种写法,实际开发中用到基本都会是饿汉模式。这两种写法在面试中也经常被问到,其中“懒汉模式”的写法还会涉及一些多线程并发的问题。2、饿汉模式饿汉模式的写法是一种线程安全的实现,代码如下:...
2018-06-30 12:58:55
97
原创 线程指令重排
1、指令重排JVM为优化执行效率对线程内的执行顺序进行重排,对单线程来说执行指令重排并不会影响程序从上到下执行的代码逻辑。但是在多线程的情况下,则可能会出现问题。2、指令重排原则程序顺序原则:一个线程内保证语义的串行性volatile规则:volatile变量的写,先发生于读锁规则:解锁(unlock)必然发生在随后的加锁(lock)前传递性:A先于B,B先于C 那么A必然先于C线程的start方...
2018-06-30 12:15:44
1327
原创 1、JVM基本结构
#######################JVM学习笔记#########################内存模型关于JVM的内存模型,主要关注:方法区、堆内存、栈内存、类加载机制、垃圾回收机制。方法区:保存装载的类信息字段,方法信息方法字节码类型的常量池通常和永久区(Perm)关联在一起(jdk8中已经无永久区概念)java堆:线程共享内存区域应用系统创建的对象保存在java堆中GC回收的主...
2018-06-30 00:06:57
212
原创 maven项目update后jdk版本变为1.5
maven项目update后再IDE工具中显示的jdk版本可能会变成1.5的情况需在pom文件中增加如下插件:org.apache.maven.pluginsmaven-compiler-plugin1.71.7UTF-8
2017-10-04 23:49:50
441
原创 借助jsoup实现从网站页面中获取指定内容
使用jsoup实现在页面中获得指定的内容的一个小demo,第一次接触这方面的内容。希望以后有机会能够深入学习一些爬虫相关的技术。从网站页面中读取指定的内容,并在控制台将指定的内容打印。
2017-04-30 10:16:14
694
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人