自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

转载 Java中的锁原理、锁优化、CAS、AQS

一、为什么要用锁? 锁-是为了解决并发操作引起的脏读、数据不一致的问题。 二、锁实现的基本原理 2.1、volatile Java编程语言允许线程访问共享变量, 为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某...

2018-03-31 12:18:00 123

转载 String为什么要设计成final

前言: 今天突然看到一个问题为什么String类型设计为final,之前没深入想过这个问题,现在来看看。 源码中对String为什么设计成final的解释: Strings are constant; their values cannot be changed after t...

2018-03-14 18:19:00 116

转载 JRE 和 JDK 的区别是什么?

JRE: Java Runtime Environment JDK:Java Development Kit JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK顾名思义是...

2018-03-14 18:17:00 315

转载 多线程交替打印红绿灯

用多线程交替打印红绿灯 用到的技术有 new Thread(new Runnable()).start(); ReentranLock Condition import java.util.concurrent.locks.Condition;import java.util.co...

2017-10-20 16:11:00 331

转载 java线程池大小设置

一般说来,大家认为线程池的大小经验值应该这样设置:(其中N为CPU的个数) 如果是CPU密集型应用,则线程池大小设置为N+1 如果是IO密集型应用,则线程池大小设置为2N+1 如果一台服务器上只部署这一个应用并且只有这一个线程池,那么这种估算或许合理,具体还需自行测试验证。 ...

2017-10-17 09:29:00 291

转载 GIT 版本回滚

1. 使用git log命令查看所有的历史版本,获取某个历史版本的id 假设查到历史版本的id是 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96 回滚到指定的id版本 gitreset--hard139dcfaa558e3276b30b6b...

2017-09-21 19:11:00 69

转载 Spring事务详解

写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事...

2017-09-19 11:41:00 82

转载 IDEA 快捷键

IntelliJ Idea 常用快捷键列表 Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) Ctrl...

2017-09-18 16:20:00 223

转载 线程池详解

前言 线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池对线程进行统一分配、调优和监控,有以下好处: 1、降低资源消耗; 2、提高响应速度; 3、提高线程的可管理性。 Java1.5中引入的Executor框架把任务的提交和执行进行解耦,只需要...

2017-09-18 09:42:00 92

转载 线程池异常捕获

捕获线程池的异常方法分为两种 1、一种是使用Thread和Runnable启动的线程使用UncaughtExceptionHandler 2、第二种是使用Callable和Future启动的现场,根据Future.get()捕获异常 第一种 首先创建一个线程运行类 package t...

2017-09-14 14:21:00 716

转载 linux下的find文件查找命令与grep文件内容查找命令

一.find命令     基本格式:find path expression     1.按照文件名查找     (1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找     (2)find /etc -name http...

2017-09-12 16:38:00 82

转载 类加载FAQ

类加载的三种方法 1.Class.forName("类名字符串")(注意:类名字符串必须是全称,包名+类名) 2.类名.class 3.实例对象.getClass() 静态的方法属性初始化,是在加载类的时候初始化。 而非静态方法属性初始化,是new类实例对象的时候加载。 ...

2017-09-12 14:18:00 75

转载 ZooKeeper分布式锁应用

一、Zookeeper是什么 Zookeeper是一个高性能的分布式系统的协调服务。它在一个简单的接口里暴露公共服务:像命名、配置管理、同步、和群组服务,所以你没有必要从头开始实现它们。你可以使用现成的Zookeeper去实现共识、群组管理、领导人选举和业务协议。并且你可以在它的基础之上建立...

2017-09-05 14:51:00 105

转载 几种简单的负载均衡算法及其Java代码实现

本文讲述的是"将外部发送来的请求均匀分配到对称结构中的某一台服务器上"的各种算法,并以Java代码演示每种算法的具体实现,OK,下面进入正题,在进入正题前,先写一个类来模拟Ip列表: import java.util.HashMap;public class IpMap { ...

2017-09-04 16:48:00 80

转载 MySQL的btree索引和hash索引的区别

Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。 可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,...

2017-09-04 16:24:00 78

转载 Java常用锁机制简介

一、synchronized   几乎每一个Java开发人员都认识synchronized,使用它来实现多线程的同步操作是非常简单的,只要在需要同步的对方的方法、类或代码块中加入该关键字,它能够保证在同一个时刻最多只有一个线程执行同一个对象的同步代码,可保证修饰的代码在执行过程中不会被其他线...

2017-08-21 16:27:00 123

转载 Java 信号量 Semaphore 介绍

Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过acquire()获取一个许可,如果没有就等待,而rele...

2017-08-21 15:50:00 67

转载 配置Java远程监控授权(Java Mission Control)

javaMission Control(JMC)最先是由BEA公司开发的JRockit(后被Oracle收购)所附带的一个用于查找Java内存溢出问题的利器,在最近的Java8中,默认已经带上了此组件,掌握好JMC的使用能让你在处理内存溢出问题是如鱼得水。 JMC的使用以后再说,现在先配置...

2017-08-21 14:59:00 563

转载 dubbo通信协议之对比

对dubbo的协议的学习,可以知道目前主流RPC通信大概是什么情况 dubbo共支持如下几种通信协议: dubbo:// rmi:// hessian:// http:// webservice:// thrift:// memcached:// redis:// 部分协议的特点和使用场景...

2017-08-21 14:40:00 143

转载 Spring单例模式

Spring框架里的bean,或者说组件,获取实例的时候都是默认的单例模式,这是在多线程开发的时候要尤其注意的地方。 单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 ...

2017-08-21 14:31:00 179

转载 Java类加载过程

类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。 其中类加载过程包括加载、验证、准备、解析和初始化五个阶段。 类加载器的任务就是根据一个类的全限定名来读取此类的二进制字节流到JVM中,然后转换为一个与目标类对应的java.la...

2017-08-16 15:12:00 66

转载 类加载器ClassLoader

类加载器(class loader)用来加载Java类到Java虚拟机中。 一般来说,Java虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字...

2017-08-16 10:59:00 76

转载 volatile关键字

以下是本文的目录大纲:   一.内存模型的相关概念   二.并发编程中的三个概念   三.Java内存模型   四..深入剖析volatile关键字   五.使用volatile关键字的场景 一.内存模型的相关概念   大家都知道,计算机在执行程序时,每条指令都是在CPU中执行...

2017-08-15 15:45:00 58

转载 线程池的使用

Java并发编程:线程池的使用   在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:   如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  ...

2017-08-15 11:21:00 60

转载 Synchronized(对象锁)和Static Synchronized(类锁)的区别

通过分析这两个用法的分析,我们可以理解Java中锁的概念。一个是实例锁(锁在某一个实例对象上,如果该类是单例,那么该锁也具有全局锁的概念),一个是全局锁(该锁针对的是类,无论实例多少个对象,那么线程都共享该锁)。实例锁对应的就是synchronized关键字,而类锁(全局锁)对应的就...

2017-08-14 10:40:00 118

转载 pip升级

You are using pip version 7.1.2, however version 9.0.1 is available. 当遇到如上问题的时候需要对pip进行升级 升级过程如下: 1、首先进入到python的安装目录下 然后运行命令: easy_install...

2017-07-10 16:05:00 53

转载 python 时间日期

datetime模块定义了两个常量:datetime.MINYEAR和datetime.MAXYEAR,分别表示datetime所能表示的最 小、最大年份。其中,MINYEAR = 1,MAXYEAR = 9999。(对于偶等玩家,这个范围已经足够用矣~~) datetime...

2017-07-08 16:56:00 170

转载 Java 按值传递还是按引用传递详细解说

7:说明 (1):“在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。 (2):在Java里面只有基本类型和按照下面这种定义方式的String是按值传递,其它的都是按引用传递。就是直接使用双引号定义字符串方式...

2017-07-08 16:11:00 107

转载 python数组的使用

1、Python的数组分三种类型: (1) list 普通的链表,初始化后可以通过特定方法动态增加元素。 定义方式:arr = [元素] (2) Tuple 固定的数组,一旦定义后,其元素个数是不能再改变的。 定义方式:arr = (元素) (2) Dictionary 词典类型, 即是H...

2017-07-08 11:24:00 119

转载 python 简单线程池使用

一、安装与简介 pip install threadpool 安装插件命令:python -m pip install threadpool pool = threadpool.ThreadPool(poolsize) requests = threadpool.makeRequ...

2017-07-08 10:18:00 132

转载 python 发送邮件DEMO

首先创建一个发送邮件的工具类sendmailM.py import smtplibimport email.mime.multipartimport email.mime.textfrom email.mime.application import MIMEApplicationd...

2017-07-07 15:22:00 112

转载 python 读取配置文件

python 的configparser.py可以读取配置文件 读取时需要注意分组 首先创建一个config.ini文件 [mysql]db.host=localhostdb.port=3306db.user=testdb.password=123456db.name=test...

2017-07-07 15:16:00 64

转载 python logging 模块2

首先创建一个logging配置文件logger.conf #logger.conf###############################################[loggers]keys=root,logger01,logger02[logger_root]leve...

2017-07-07 14:56:00 57

转载 python logging 模块

1、日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL。 DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如...

2017-07-07 14:35:00 74

转载 linux 设置定时任务

每天清晨 4:00:01,用Python执行/opt/aa.py文件。 编辑定时任务: #crontab -e 加入: 04***python/opt/aa.py 保存,退出即可。 ===========================================...

2017-07-06 14:16:00 79

转载 linux 执行python 脚本

$ python/data/python/server.py >python.log & 1、 > 表示把标准输出(STDOUT)重定向到 那个文件,这里重定向到了python.log 2、 & 表示在后台执行脚本,这样可以到达目的,但是,我们退出shel...

2017-07-06 14:08:00 108

转载 Centos python 升级

阅读目录 安装pip3 1、安装pip前需要前置安装setuptools 2、安装pip 查看python版本 1.下载Python-2.7.3 2.解压 3.安装 4.查看版本信息 5.建立软连接,使系统默认的 python指向 python2.7 ...

2017-07-06 11:41:00 47

转载 Python升级Linux

CentOS 7 中默认安装了Python,版本比较低(2.7.5),为了使用新版 3.x,需要对旧版本进行升级。 由于很多基本的命令、软件包都依赖旧版本,比如:yum。所以,在更新python时,建议不要删除旧版本(新旧版本可以共存)。 查看 Python 版本号 当Linu...

2017-07-06 10:47:00 236

转载 python linux 命令

一、想要查看linux中安装的Python路径 方法一:whereispython 方法二:which python 二、想要查看linux中安装的python版本号 python 查看 Python 版本号 当Linux上安装 Python 后(默认安装...

2017-07-05 18:13:00 62

转载 python安装插件

Windows 安装插件 python-mpipinstall+需要安装的东西 例如:安装pymysql,首先CMD,然后执行: python-mpipinstallpymysql ...

2017-07-05 17:24:00 81

空空如也

空空如也

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

TA关注的人

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