自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

店小不二的博客

Keep on going never give up.

  • 博客(96)
  • 资源 (3)
  • 收藏
  • 关注

原创 【搞定面试官】- Synchronized如何实现同步?锁优化?(1)

前言说起Java面试中最高频的知识点非多线程莫属。每每提起多线程都绕不过一个Java关键字——synchronized。我们都知道该关键字可以保证在同一时刻,只有一个线程可以执行某个方法或者某个代码块以保证多线程的安全性。那么,本篇文章我们就来揭开这个synchronized的面纱。线程安全的实现方法在详细介绍synchronized之前,我们首先了解一下实现线程安全的不同方式,了解sync...

2020-02-15 20:17:18 1372

原创 【搞定面试官】try中有return,finally还会执行吗?

本篇文章我们主要探讨 一下如果try {}语句中有return,这种情况下finally语句还会执行吗?其实JVM规范是对这种情况有特殊规定的,那我就先上代码吧!public class FinallyTest { public int method() { int x = 1; try{ x; ret...

2019-12-08 20:57:49 974

原创 【搞定面试官】你还在用Executors来创建线程池?会有什么问题呢?

前言上文我们介绍了JDK中的线程池框架Executor。我们知道,只要需要创建线程的情况下,即使是在单线程模式下,我们也要尽量使用Executor。即:ExecutorService fixedThreadPool = Executors.newFixedThreadPool(1); //此处不该利用Executors工具类来初始化线程池但是,在《阿里巴巴Java开发手册》中有一条【...

2019-12-03 22:20:01 1047

原创 【搞定面试官】谈谈你对JDK中Executor的理解?

前言随着当今处理器计算能力愈发强大,可用的核心数量越来越多,各个应用对其实现更高吞吐量的需求的不断增长,多线程 API 变得非常流行。在此背景下,Java自JDK1.5 提供了自己的多线程框架,称为 Executor 框架.1. Executor 框架是什么?1.1 简介Java Doc中是这么描述的An object that executes submitted Runnable...

2019-11-30 23:36:48 958

原创 搞定面试官(Java)—— 对象堆内存分配过程

引言我们平时最常听说的“栈”和“堆”, 其中的这个堆指的就是Java堆这块内存区域,该区域是所有线程共享的一块内存区域(线程共享区域如下图绿色区域所示)Java堆这块内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都要在堆上分配。这一点Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配,但是随着JIT编译器的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致...

2019-08-25 10:52:08 674

原创 搞定面试官(Java)—— JVM运行内存区域划分

首先简单提一下上一篇博客最后的问题:问题是: String s1 = "a1"; String s2 = "a" + 1; System.out.println(s1 == s2);// true or false?答案是true。其实这个和s1 = “abc” s2 = “ab” + “c” 道理上是一样的,原因是编译器在编译过程中就已经可以完全确定s1 和 s2 的值...

2019-08-25 10:48:53 162

原创 搞定面试官 —— 你真的了解了String的==吗

引子相信每一个Java程序员都被问到过这个问题:Java中==和equals()方法的区别是什么?相信大家都知道此问题的答案(不知道的童鞋可以点击这里)。既然==比较的是否指向同一个对象。那么大家是不是清楚以下这个问题的答案呢? String s1 = "abc"; String s2 = "abc"; String s3 = "ab";...

2019-08-25 10:12:49 215

原创 【Android】安卓项目莫名报错 Please select Android SDK 解决办法汇总

更新Android build-tools步骤为:打开Android Studio设置项,搜索sdk,点击edit,一路next,Android Studio会自动更新Android build-tools. 下载完成之后点击Finish即可。第一种方法对我不管用~ 只好继续尝试。修改Project Structure中的build-tool version。删除项目.i...

2018-12-05 22:41:05 1595 1

原创 将微信公众号变为自动聊天机器人(二)准备工作

本篇文章主要包括申请公众号、配置服务器以及微信公众号配置三部分。。申请公众号公众号申请链接:https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN打开页面点击右上角立即注册即可。申请公众号类别。个人一般申请订阅号。配置服务器首先需要申请一台具有公网ip的服务器,或者利用内网穿透工具来生成一...

2018-11-10 09:56:11 6169

原创 Could not find adb Please set the ANDROID_HOME environment variable with the Android SDK root direct

2018-11-06 21:37:10 9160

原创 将微信公众号变为自动聊天机器人(一)引言

最近申请了一个微信公众号来学习微信开发相关

2018-10-30 09:15:28 3904

原创 【python】web应用持续运行在服务器后台

可以通过 tmux 工具来实现。启动步骤启动tmux在终端输入tmux即可启动,如果提示command not found,可参考后文的tmux安装步骤。在tmux中启动程序直接执行启动命令即可: python XXXXXX.py直接关闭ssh终端(比如putty上的关闭按钮);重新ssh上去之后,执行如下命令:tmux attach现在可以看到python程序还在...

2018-10-24 23:07:11 1478

原创 【Java学习】双重检查锁定(DCL)与延迟初始化

引出问题在某些场景下,可能需要推迟一些高开销的对象初始化操作,即只有在使用该对象时才进行对象初始化操作,类似Spring中的lazy-init(懒加载)。但是正确实现线程安全的延迟初始化需要一些技巧,否则在一些特殊情况(比如多线程)下很容易出现运行问题。比如,以下初始化代码在多线程下就是非安全的。public class UnsafeLazyinitialization { priv...

2018-10-22 18:24:39 769

原创 技术资源共享

Dubbo视频教程https://pan.baidu.com/s/1JzLa9KX4VXgdix9XvDqELg提取码关注以下公众号回复数字9即可。公众号更新最新技术文章,更助于提升自己!

2018-10-22 18:09:26 1604

原创 【Dubbo起步】 Exception in thread "main" java.lang.IllegalStateException: Can't assign requested address

刚刚接触Dubbo项目,首先在从github下载项目到本地,导入idea中,待项目初始化完成之后,直接运行dubbo-demo 下的Provider 类中的main方法,报错如下:Exception in thread "main" java.lang.IllegalStateException: Can't assign requested address解决办法:在运行Java类时加入...

2018-10-13 22:09:14 1713 1

原创 【Java学习】初识Stream API

前言Stream是Java1.8开始添加的新特性,大大简化了对于集合对象等的处理。顾名思义,Stream即是流,它把输入的集合元素看作一种流,像流水线处理方式一样可以对集合元素进行筛选、排序、聚合等操作。...

2018-09-01 13:23:52 310

原创 git修改commit注释 已提交但并未push

只需要修改最新的一次commit注释这种情况比较简单,git为commit命令提供了--amend 参数例子:git log 见下图,此次提交注释为 create new file 2 之后执行git commit --amend, 之后便可以利用vim来进行编辑,编辑之后注释为create new file 2 after change。(vim可按i键进入编辑模式,esc退出...

2018-08-24 23:32:06 27348 4

转载 【Docker】 docker run创建容器,后台运行的标准操作

检查本地是否存在制定的镜像,不存在就从公有仓库下载利用镜像创建并启动一个容器分配一个文件系统,并在只读的镜像层外面挂载一层可读写层从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去从地址池配置一个ip地址给容器执行用户指定的应用程序执行完毕后容器终止摘抄自《docker practice》一书。...

2018-07-27 23:46:52 2643

原创 【Docker】Docker相比传统虚拟化技术的优势

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。对比传统虚拟机总结 特性 容器 虚拟机 启动 秒级 分钟级 硬盘使用 一般 MB 一般 GB 性能 接近原生 弱于 系统支持量 单机支持上千个容器 一般几十个更高效的系统资源利用由于容器不需要进行硬件虚拟以及运行完...

2018-07-26 21:58:45 8028

原创 【IOS开发】iPhoneX适配 wkWebView屏幕下方有间隙的问题

在iPhoneX适配时,wkWebView会出现屏幕下方有一定间距的情况,大约是屏幕底部到安全区(safe area)的距离。此时可以用以下方法解决。if(@available(iOS 11.0, *)) { webView.scrollView.contentInsetAdjestmentBehavior = UIScrollViewContentInsetAdjestmentNev...

2018-07-24 23:01:37 10039 3

原创 【Java学习】equals()和hashcode()方法详解

默认情况下,java.lang.object提供了两个重要方法来进行对象之间的比较:equals()和hashcode()。这两个方法在大型项目中多个类之间的交互中非常有用。在这篇文章中,主要介绍这里两个方法之间的联系、默认实现、以及开发者重写这两个方法的场景。方法定义以及默认实现equals(Object obj) java.lang.Object中定义的用来表明一个其他对象是否等同于...

2018-07-23 22:23:45 361

原创 CentOS 6.5安装caffe注意事项 应该可以解决大部分报错问题

本文安装基本环境参考这篇博客,先往下看。在我这里坑主要出现在安装glog一直报错(其实问题是gflag安装的问题),安装gflags的时候按照我这里的来一句话:自己手动安装的包,一定要确保有且只有安装了这一个包(别重复安装)!比如gflags:首先先保证把老版本卸载:1、如果之前用make install安装的,用make unistall卸载。2、之后查看rpm包rpm...

2018-03-28 10:56:12 615

原创 设计模式原则:里氏替换原则(Liskov Substitution Principle, LSP)

定义LSP由Barbara Liskov于1987年提出,一般有两种定义方式: 第一种:If for each object O1 of type S there is an object O2 fo type T such that for all programs P defined in terms of T, the behavior of P is unchanged whe

2018-01-07 21:52:40 560

转载 设计模式原则:单一职责原则

原文地址:http://blog.csdn.net/zhengzhb/article/details/7278174定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2

2018-01-05 20:52:58 192

原创 JDK源码阅读系列(1) java.lang.Object

阅读JDK SE源码系列(1)学java一定听说过Object这个类。按照官方文档的说法,Class Object is the root of the class hierarchy,意思是Object类是java类等级中的根(翻译水平有限,意会就好~~~),那我们就从Object开始看起。概述就如刚才所说的,Object类是java中所有类的祖先,即Java中所有的类从根本上

2017-12-28 14:01:38 569

原创 Linux/Unix下Spring Boot项目随系统自动启动(init.d或者systemd)

将Spring Boot项目部署到Linux/Unix后,由于某种原因服务器会不定期关机,每次打开服务器都需要手动启动项目,很麻烦,查看官方文档,发现有相应的解决办法,特此记录。按照官方文档的话来说: Spring Boot application can be easily started as Unix/Linux services by using either init.d or sys

2017-12-26 17:49:38 5754

原创 【mysql】window下忘记root密码 或者 提示ERROR 1045 (28000): Access denied for user 'root'@'localhost'

适用于解决windows下忘记root密码或者提示ERROR 1045 (28000): Access denied for user ‘root’@’localhost’的问题 若是在linux下,可以转至这篇博客 1、在DOS窗口下输入net stop mysql5 或 net stop mysql 2、开一个DOS窗口,这个需要切换到mysql的bin目录,或者将bin目录加入到系统环

2017-11-13 23:07:56 681

原创 【linux】/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.XX' not found

运行以下命令检查动态库: strings /usr/lib64/libstdc++.so.6 | grep GLIBC从以上输出可以看出,gcc的动态库还是旧版本的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。处理问题: 1、升级GCC,见之前的教程,如已升级请忽略。 2、升级完成之后,找到gcc_tmp目录下的最新动态库libstdc++.so*。

2017-10-24 21:35:46 1079

原创 【linux】 CentOS 6.5升级gcc

1.下载gcc最新的源码包2.解压缩 tar -jxvf gcc-6.1.0.tar.bz23 cd gcc-4.9.14.运行download_prerequisites脚本, ./contrib/download_prerequisites ,这个脚本会自动帮你下载所需要的依赖文件和库5.建立输出目录,将所有的中间文件都放到该目录, mkdir gcc_temp

2017-10-24 17:44:44 906

转载 【TensorFlow】 基本用法

TensorFlow基本使用方法

2017-10-23 11:22:08 725

原创 Sping声明式事务和try catch捕获异常

最近遇到这样的问题,使用spring时,在业务层需要捕获异常(特殊需要),当前一般情况下不需要这样做的。具体如下: 在ServiceA类中有method1,在该方法中调用另一个ServiceB类的method2方法时(假定该方法抛出异常),method1方法捕获该异常但是没有向上抛出。spring提示:org.springframework.transaction.UnexpectedRollb

2017-09-21 19:58:34 525

转载 数据库设计 第一范式、第二范式、第三范式 三大范式介绍

数据库设计三大范式为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。第一范式的合理遵

2017-09-18 11:38:33 6902 3

转载 【Java学习】理解try{ return } finally {} 中执行顺序

先看一段代码:public class testFinally { public int test() { int x = 1; try{ return ++x; }catch(Exception e){ }finally{ ++x; } retur

2017-09-01 16:16:33 746

原创 【Java学习笔记】之println打印数组

问题: 答案: 这里就有了一个问题,之前打印过String数组,并不会输出String数组中的内容,而是类似[Ljava.lang.String;@15db9742的输出,那为什么char[]数组可以直接用println来进行输出呢?先测试下public class testMain { public static void main(String[] args) { S

2017-08-28 10:24:27 3641 1

转载 【Java学习笔记】之数组

所谓数组,是相同数据类型的元素按一定顺序排列的集合。现在我们来看一看数组在内存中的样子,话不多说,上代码:这是一段教科书级别的代码,让我想起了中学时候学过的文章,孔乙己问:茴香豆的茴字有几种写法?先编译一下,我们打开编译好的class文件,反编译一下看看:三种数组的声明方式编译后,最后创建的方式都是一样的,都给我们加了new关键字,顺手还把charArr3的声明与赋值一体化了,编译器你管得也太多了吧

2017-08-28 09:55:42 253

原创 【Spring理解】Spring中设计模式小记

1.简单工厂模式 又叫做静态工厂模式 简单工厂模式实质是有一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。beans> bean id="singletonBean" class="com.itxxz.HelloItxxz"> constructor-arg> value>Hello! 这是singletonBean!value>

2017-08-26 17:09:19 207

原创 【笔试准备】写出程序输出结果C/C++

以下是我在准备面试准备过程中遇到的一些问题,且每一道题我都在编译器中敲过,希望也对准备面试的朋友有帮助。一、赋值语句1、#include <cstdlib>#include <iostream>using namespace std;int main() { int x = 2,y,z; x *= (y = z = 5); cout<<x<<"\t"; z = 3;

2017-08-26 17:07:03 871

原创 【Java学习】Timer用法

java.util.Timer 在线JDK文档:http://tool.oschina.net/apidocs/apidoc?api=jdk_7u4定义:有且仅有一个后台线程,对多个业务线程进行定时定频率的调度。 简单例子: 创建一个MyTimerTask类,重写其中的run方法package com.imooc.timer;import java.util.TimerTask;publi

2017-06-02 10:59:33 6326

原创 系统提示java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件

在本地测试系统,发现插入语句老是报错, java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件原因是把oracle正式库导回到本地的时候,没有导入序列(插入id的值依靠这个序列),导致一直不能插入。修改: 先查看序列当前值,在Oracle SQL Developer中序列找到当前用的序列,查看序列中信息,修改当

2017-05-17 10:19:56 74246 1

原创 【深入理解Java虚拟机】之自己编译JDK(已经完成,其中有自己遇到的各种问题及解决办法)

(深入理解Java虚拟机 第二版 书中1.6 实战:自己编译JDK) 个人笔记,仅供参考系统:CentOS 6.5 OpenJDK:OpenJDK 7u1、获取源码。 两种方式: ① 直接官网下载 ② 通过Mercurial代码版本管理工具获取。说一下第二种方式: 首先安装Mercurial代码版本管理工具yum install mercurial安装之后clone源码hg clone

2017-05-13 15:38:01 7560 1

鸟哥linux私房菜 第三版 带目录 pdf

鸟哥的linux私房菜第三版 个人一直在看,绝对实用! 《鸟哥的Linux私房菜:基础学习篇》是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。

2017-09-12

ZXing-core-3.2.1.jar 生成二维码 亲测可用

ZXing-core-3.2.1.jar 生成二维码 亲测可用

2017-02-26

空空如也

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

TA关注的人

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