自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程同步 (二)——ReentrantLock类

继 多线程同步 (一)——synchronized关键字,可以通过使用synchronized关键字实现线程之间的同步, 使用Lock也可以达到同样的效果,本篇博客主要是关于Lock接口的子类ReentrantLock的使用, 由于对多线程了解的不足,本文仅作为自我学习总结,如有不正确的地方欢迎大家批评指正。1. ReentrantLock由Java api,ReetrantLock是Lock接

2018-02-05 18:16:09 480

原创 多线程同步 (一)——synchronized关键字

之前在Java内存模型与多线程中介绍过,在并发编程中,非常重要的两个问题是:通信和同步。 本博客主要对如何使用synchronized关键字实现线程间同步问题的自我学习总结。1. 线程间的同步同步:是用于控制不同线程间操作发生相对顺序的机制。注:有两个词语“线程安全”和“非线程安全”,同步保障了线程安全。因为非线程安全的发生,就是由于在 线程的创建和启动中提到的线程因其与生俱来的“随机性”造成

2018-02-02 21:49:49 572 2

原创 多线程——join()、sleep()

Thread类的方法中有一个join()方法,它是普通的实例方法,根据Java api,该方法有如下三种形式:void join(): Waits for this thread to die.void join(long millis): Waits at most millis milliseconds for this thread to die.void join(long m

2018-02-02 18:18:38 831

原创 多线程——停止线程

停止线程是多线程中的一个技术点,在Thread类的方法中,与停止线程有关的有: interrupt(),interrupted()和isInterrupted(), 还有一个stop()方法,该方法因”unsafe”而被标记为”Deprecated”, 本博客是关于停止线程的探讨,不会涉及到被弃用的方法,作为自我学习总结。1. 判断线程是否是停止状态可以参考: 多线程——interr

2018-02-01 17:23:54 593 1

原创 多线程——interrupt(),interrupted()和isInterrupted()

停止线程是多线程中的一个技术点,Thread类的方法中,与停止线程有关的是: interrupt(),interrupted()和isInterrupted(), 仅从名字上看就能感受到区分它们是有难度的T.T,还有一个stop()方法,该方法因”unsafe”而被标记为”Deprecated”, 本博客主要是对这三个方法区别的介绍,不会涉及到被弃用的方法,希望在正确有效的停止线程的路上有一点

2018-02-01 15:01:04 586

原创 多线程——线程的几种状态 (Java API版)

以前学习操作系统这门课程的时候,对线程状态的学习是比较粗略的,仅限于表面的了解,在后续学习和使用的过程中, 我发现自己之前的认知与Java api中定义的线程状态是有出入的,在使用过程中也会有很多误解, 所以按照java.lang.Thread.State中的详细定义和说明,进行了如下整理,作为自我总结和学习。根据Java api,Java中线程一共有如下6种状态,即NEW、RUNNABL

2018-01-31 17:44:58 1411

原创 多线程——Thread类的常用方法

本博客主要针对Thread类的常用的方法进行介绍,包括:构造方法、静态方法和非静态方法,作为自我总结。1. Thread类的构造方法根据Java api,Thread类的构造方法共有8个:Thread()Thread(Runnable target)Thread(Runnable target, String name)Thread(String name)----------Thread(T

2018-01-30 22:23:46 3321

原创 Java内存模型与多线程

继 Java虚拟机基础知识汇总 (二),在此基础上,进一步介绍Java的内存模型及其和并发编程的关系。在并发编程中,非常重要的两个问题是:线程间如何通信,通信是用于控制不同线程间信息交换的机制;线程间如何同步,同步是用于控制不同线程间操作发生相对顺序的机制。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 线程之间同步常用的方式有:使用Synchromized关键

2018-01-29 22:45:03 351

原创 Java虚拟机基础知识汇总 (二)

继Java虚拟机基础知识汇总 (一)对JVM的类加载器进行了简单概述,本博客主要是关于运行时数据区的问题。1. JVM运行时数据区JVM在执行Java程序时都会把内存划分为几个不同的数据区域,这几个数据区域各自的作用是不同的,JVM运行时数据区的组成和结构如下图所示:jvm运行时数据区分为堆和栈两种类型,其中堆区为线程共享区,而栈区则为线程私有区。 堆区分为堆和方法区,栈区分

2018-01-29 16:28:56 307

原创 Java的内存泄漏和垃圾回收机制

Java的垃圾回收(Garbage Collection,GC)机制是JVM提供的重要功能之一,能够自动检测对象是否已经没有任何引用, 从而自动释放不在使用的对象所占用的内存空间,避免引发内存泄漏,但是该机制并不能完全避免内存泄漏情况的发生。1. 内存泄漏定义:指由于疏忽或错误造成程序未能释放已经不再使用的内存,即由于不再使用的对象持续占用内存或者占用的内存得不到及时释放,造成内存空

2018-01-28 23:28:30 489

原创 Java虚拟机基础知识汇总 (一)

本文总结了我在学习过程中遇到的JVM相关知识,都是最基本的介绍,作为自我总结,也希望能对看到本博客的你带来帮助~1. Java虚拟机Java虚拟机(Java Virtual Machine,JVM)是一种能够运行Java字节码的虚拟机,它有完善的硬件架构和相应的指令系统。 Java字节码是Java虚拟机执行的一种指令格式,Java源文件经过编译器,能够被编译成被Java虚拟机执行的字节码文件。下图

2018-01-28 18:10:29 461

原创 IK分词器下载、使用和测试

对于Win10x86、Ubuntu环境均适用~1.下载为什么要使用IK分词器呢?最后面有测评~访问:https://github.com/medcl/elasticsearch-analysis-ik/releases,找到与自己的ES相同的版本, 可以下载源码,然后自己编译,也可以直接下载编译好的压缩包,比如我这里是5.4.0版本:如果选择下载源码然后自己编译的话,使用maven进行编译: 在

2018-01-19 21:15:56 23849

原创 ubuntu——MySQL安装、远程连接和导入数据库

Ubuntu Linux 安装MySQL执行命令:sudo apt-get install mysql-server 然后,整个安装过程包括版本号都不需要操心了,apt-get是Ubuntu下的一个软件安装方式,它很智能哦~ 在安装的过程中会出现设置root密码的界面,界面出现时,相应的输入想要设置的root密码即可~等它运行完成安装好之后,执行命令:mysql –version查看版本号,或者

2018-01-19 00:00:36 452

原创 win10x86——MySQL启动报错集锦

本博客的MySQL版本:mysql-5.7.20-winx64本来我的MySQL服务是好好的启动着的,path是:“E:mysql\mysql-5.7.20-winx64\bin”,刚刚突发奇想,把它的path换了一下,改成:“E:\mysql-5.7.20-winx64\bin”,即直接放在E盘下面=.=,微强迫症……T.T,结果,服务不能用了(/哭笑不得),这个坑自己跳出来吧~出现

2018-01-18 20:53:52 346

原创 Java解析Excel文件(.xlsx和.xls格式均适用)

简介:Excel文件的解析与读取普通的文本文件不同,就像xml文件的解析,最常用的Java4J方式也是jar包支持的, 根据apache官方文档:http://poi.apache.org/spreadsheet/index.html,“Also please be aware that as the new XSSF supported Excel 2007 OOXML (.xlsx) f

2018-01-17 16:30:20 131463 34

原创 IDEA——Maven Web工程:源目录下新建Servlet出错

继IDEA——Maven Web工程:无法创建Java Class文件,可以在设置好的源目录下创建Java类文件了, 但是又遇到了一个问题:在该目录下新建Servlet时出错,如下~方法:添加servlet依赖访问:http://mvnrepository.com/,搜索servlet即可, 当然,使用最多的是如下的版本,servlet3.0开始提供注解支持,非常方便~

2018-01-17 14:46:30 2145

原创 IDEA——Maven Web工程:无法创建Java Class文件

今天用IDEA新建了一个maven web工程,项目目录是这样的:然而,遇到了一个问题:无法创建Java class文件,即新建文件时,界面是这样的:方法:手动创建Java源目录选择 File——>Project Structure——>Project Settings——>Modules:右键main目录,选择New Folder,创建一个新文件夹~命名为Ja

2018-01-16 23:30:17 14747 4

原创 Java IO——文本增、删、查

继Java IO

2018-01-15 23:29:04 259

原创 Java IO——简介

一直搞不太懂java里的io问题,感觉java.io里面的类很多、很复杂而且很混乱,每次进行文件读写时都会费好多脑筋, 毕竟java里的文件读写是避免不了的=.=,写着写着自己也就明白了~java io流的分类(两类):根据数据流向分为:输入流和输出流,其中的“输入”和“输出”是相对于内存而言的;输入流用于把数据读取到内存中,输出流则相反。根据数据单位分为:字节流和字符流,它们的区别如下:字节

2018-01-15 21:53:31 305

原创 解析xml文件——dom4j

继解析xml文件——简介,在xml文件的4种解析方式中,在不考虑大型文档的前提下DOM4J方式性能最佳,也最容易实现。xml文件: root att1="测试" att2="解析xml"> child att1="a" att2="你"> subChild att1="b" att2="好"> node att1="c" att2=

2018-01-15 16:46:06 245

原创 解析xml文件——简介

XML:Extensible Markup Language,可扩展标记语言,主要用于简化数据的存储和共享,它独立于硬件、软件以及应用程序。 xml文件是符合xml语法的文档,它是一个从根节点到子节点的树形结构,由元素构成,元素可以嵌套,元素中可以包含属性和文本内容,元素命名对大小写敏感,参考http://www.w3school.com.cn/xml/。对xml文件的解析,Java中xml

2018-01-14 23:04:11 410

原创 IDEA——错误: 找不到或无法加载主类 com.Main

昨天在使用IDEA创建了一个普通Java项目,执行main()方法时,程序报错如下: “错误: 找不到或无法加载主类 com.Main Process finished with exit code 1”, 我确信自己的java jdk安装和环境变量配置(java jdk安装和环境变量配置)正确无误,而程序只是一个再简单不过的打印而已:package com;public class Main

2018-01-14 22:25:08 191995 20

原创 ubuntu——elasticsearch5.4.0启动报错锦集

吼吼吼吼吼,可能之前用力过猛,最近颓废了两天,带着心里满满的愧疚感,昨晚终于坐不住了~想着在Linux环境下启动ES5.4.0,可是总是冒出各种幺蛾子问题。以下问题不一定全部出现,但是,刚好我一次全都遇到了=.=,以下问题依次出现,作为Linux小白,在把它们解决后还是挺高兴的,总结一下,积累经验。问题1: main ERROR Could not register mbeans java

2018-01-11 00:22:43 1176

原创 多线程——start()和run()

继线程的创建和启动,这篇博文主要讨论一下start()和run()这两个方法。1. run()方法在线程的创建和启动的总结中有说过:根据java api,Thread类本身也是实现了Runnable接口,有:public class Thread extends Object implements Runnable现在来看一下Runnable接口,根据java api,Ru

2018-01-05 17:05:56 10921 1

原创 线程和进程

1. 直观认知打开win10的任务管理器,点击“进程”,可以看到很多正在运行的进程:没错,操作系统会为运行的程序创建相应的进程,进程就是操作系统中运行的一个个可执行程序。而线程,是比进程更小的、可独立运行的子任务,一个线程里可以创建多个进程,比如在使用QQ时,我们可以一边听着音乐、一边下载文件、一边和朋友聊天等等,这些就是分别由音乐线程、文件下载线程和数据传

2018-01-05 14:13:39 209

原创 线程的创建和启动

Java里创建线程常见的且比较简单方式主要有下面两种:1. 继承Thread类,并且覆盖run()方法代码:创建10个线程,打印线程名字+Hello:/* * 通过继承Thread类来创建线程 */public class MyThread_thread extends Thread{ public void run(){ System.out.println(Threa

2018-01-05 13:44:05 1271

原创 二叉树——中序遍历(递归/非递归)

中序遍历,即遍历顺序为:左节点、根节点、右节点。二叉树节点:public class Node { public Node left; public Node right; public int val; public Node(int data){ this.val = data; }}1. 递归方式思想同二叉

2018-01-04 20:37:45 13206 1

原创 二叉树——先序遍历(递归/非递归)

在二叉树的先序、中序和后序这三种遍历方式中,所谓的“先”、“中”和“后”都是相对于“根节点”来说的, 因此,先序遍历,即遍历顺序为:根节点、左节点、右节点。二叉树节点:public class Node { public Node left; public Node right; public int val; public Node(int dat

2018-01-04 15:41:17 15225 2

原创 ElasticSearch入门篇(三)——相关工具的安装(win10x64)

继ElasticSearch入门篇(二)——下载和启动(win10x64),这篇博客主要介绍与ElasticSearch搭配使用的工具的下载和安装,包括Kibana、Head和IK分词器。1. KibanaKibana是一款开源的、数据可视化平台,使用其中的Dev Tools可以很方便的写ES命令, 目前我使用的也是它的这个功能,但是它在数据可视化方面的强大功能以后有需要会慢慢学习。Kibana需

2018-01-03 21:42:29 1178

原创 ElasticSearch入门篇(二)——下载和启动(win10x64)

继 ElasticSearch入门篇(一)——简介,这篇博客主要介绍ElasticSearch的下载和启动。注:这里我使用的是ES 5.4.0版本的,相应的搭配使用的工具也是5.4.0版本的。在使用过程中,所有与ES相关的技术的官方文档链接:https://www.elastic.co/guide/index.html1.首先需要查看java jdk版本,java -version,不能低于1.8版

2018-01-03 21:20:47 4489

原创 ElasticSearch入门篇(一)——简介

刚接触ElasticSearch不久,还处于学习和探索阶段,在刚刚过去的2017年的最后一个月里,我提交了自己的毕业论文,在姚老师(姚攀的博客)的帮助下,使用ElasticSearch及其搭配的开发工具Kibana以及head实现了一个新闻搜索引擎,现把这段时间的学习过程和收获从头整理一遍,连载到ElasticSearch入门篇中,作为给自己的一个总结,也作为对姚老师的一个交代,感谢姚老师这些日子对

2018-01-03 18:26:44 824

原创 码云gitee+git入门篇(四)——IDEA

书接上回:码云gitee+git入门篇(三)——删除、回退 继对git的删除和回退方法介绍之后,对git命令也算是入门了,这篇博客主要介绍如何使在IDEA上使用码云平台进行代码托管。 IDEA可以很好的支持码云平台的使用,操作简单,其实本质上跟使用git命令是一样的。 首先需要在IDEA上安装码云插件,如果没有下载git客户端也是不行的,win10x64系统的git的下载和安装请参考:码云gi

2017-12-27 23:58:20 12548

原创 码云gitee+git入门篇(三)——删除、回退

书接上回:码云gitee+git入门篇(二) 继对在码云上进行代码托管的简单介绍之后,这篇博客主要介绍一点常用的git命令和操作=.=。 说明:这里使用的代码托管方式是码云gitee+git入门篇(二)中的第2种简单方式。一、删除文件、文件夹 1. 删除文件,执行命令:git rm 想要删除的文件的名字及其后缀可以看到在本地代码仓库testGit1中有三个文件,README.md、test1.

2017-12-27 16:45:36 41638 2

原创 码云gitee+git入门篇(二)——代码托管

书接上回:码云gitee+git入门篇(一) 继对gitee和git的简单介绍以及git安装之后,这篇博客主要介绍如何使用git命令,从而在码云上进行代码托管。 首先,参考码云平台帮助文档先介绍一下git中的几个重要概念:分支、提交、拉取和推送,有助于帮助理解下面的内容。1. 分支(branch命令) git默认分支一般是master,当然,这是可以修改的,我们在master完成一次开发,生

2017-12-26 21:49:15 33765 12

原创 码云gitee+git入门篇(一)——简介、git安装

关于git的大名早有耳闻,之前在投简历的时候也发现会有些公司要求应届生具有使用git或svn的经验,好吧,明明知道是加分题却一直懒得研究=.=,当然我觉得任何时候当我意识到了问题所在并开始付出行动去做一些补救,总归是好的,日积月累事情肯定会慢慢转向好的一面。 经过最近一阵子的多次反复实践和总结,我终于对git有了一些感觉和自己的领悟,这里,我的git是和码云gitee(https://gitee.

2017-12-26 18:29:02 55214 2

原创 IDEA——创建Maven Web工程

关于Maven的简介和安装:http://blog.csdn.net/gxx_csdn/article/details/78798175,所以不再说明。 图片很多,因为是完全版本,每一步都有截图,但是按照步骤一步一步来其实很简单。IDEA配置Maven打开IDEA,选择File——>Settings: 找到Maven: 点击“Maven “进行配置: 好了,配置完成~~新建Mav

2017-12-21 21:43:19 551

原创 生成Spring-boot工程(Maven版)

Spring-boot是什么?由于刚开始接触Spring,对它的了解和理解并不充分,所以关于Spring-boot是什么这个问题,参考链接:http://www.yiibai.com/spring-boot/what-is-spring-boot.html对其有了初步的认知,如下: 首先Spring Boot不是一个框架,它是一种用来轻松创建具有最小或零配置的独立应用程序的方式,这种方法用来开发

2017-12-21 17:59:18 392

原创 IDEA清空项目缓存

之后等一会就好了

2017-12-21 14:57:46 6758

原创 解决表单中文本框和提交按钮对不齐的问题

在创建一个表单时,表单有一个默认的长和宽,大致就是这样: 长和宽都比较小,放在一个网页上就很难看了,之后我对它的长宽进行了相关的设置,现在成了这样: 输入框和提交按钮对不齐,在网上查找办法发现,最多的解决方案是在它们的样式里添加:vertical-align: bottom,然而我这里依然有问题,现在成了这样: 好吧,还是差一点,现在改成 :vertical-align: bott

2017-12-21 14:50:31 2576

原创 Get和Post、doGet()和doPost()

Get和Post的区别直到现在经过实践,我对get和post的区别有了深刻的理解,先把我的理解以及在网上查到的相关资料总结如下: Http定义了客户端和服务器多种交互方式,其中HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法, 在此基础上HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法,具体内容请参看:

2017-12-21 12:23:12 2896

空空如也

空空如也

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

TA关注的人

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