自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

joker_187的博客

带着你认识这个世界

  • 博客(34)
  • 收藏
  • 关注

原创 IDEA mac版 快捷键

一、查找快捷键描述⌃H显示当前类的层次结构⌘⇧H显示当前方法的层次结构⌃⌥H显示调用的层次结构⌘F12显示当前类的所有方法(可直接搜索方法名)⌘O查找类文件...

2020-01-04 10:34:57 244

原创 springboot项目启动后意外挂起root of context hierarchy

项目启动后发现,过一段时间后就访问不了了。查看日志后发现报了root of context hierarchy一顿查询之后发现是项目启动的问题:我直接是用java -jar …jar的方式启动的。----这种方式启动会随着远程中断的关闭而结束进程那就换种启动方式:nohup java -jar …jar & :该命令不受当前命令行中断的影响 直接在后台运行,即远程终端退出后还可...

2019-12-08 11:51:54 28691

原创 阿里云服务器无法访问

今天碰到一个很无奈的问题,回过头想想还是自己经验太少了。将一个java web工程部署到服务器上之后(启动完全正常),怎么也访问不到(本地是好的),用脚指头想想也应该是网络或者端口的问题。那好先检查网络:curl www.baidu.comOK的啊,没啥毛病。再看端口:看看防火墙的端口有没有开放出去我用的是阿里云的服务器,不知道是不是我配置的问题。按上图的安全组配置,发现还是无法访问...

2019-12-03 09:42:44 363

原创 每天一个linux命令

1.查找服务器进程ps -axu 可查找服务器下的所有进程ps -axu | grep java 可过滤java进程。2.重启服务器rebootshutdown -r now 立刻重启(root用户使用)shutdown -r 10 过10分钟自动重启(root用户使用)shutdown -r 20:35 在时间为20:35时候重启(root用户使用)3.查看防火墙sy...

2019-12-03 09:27:57 104

原创 js+Ajax+springBoot+Mybatis实现简单的贴吧功能

先看下效果图:实现了简单的分页功能。后台用了springboot和mybaits,主要是部署很简单,运行一个jar包就行了前端用了 js和ajax代码已上传github:https://github.com/GCMER/SpringBootAndMybatis.git...

2019-11-28 14:59:04 418 1

原创 java8的新特性

1.Lambda表达式lambda允许函数作为一个方法的参数。特性:可选的类型声明:不需要声明参数类型,编译器可以统一识别。可选的参数圆括号():一个参数的时候无需定义(),多个参数需要定义();可选的大括号{}:如果主体包含了一个语句,就不需要使用大括号{};可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值。简单的例子:// 1. 不需要参数,返回值为 5 ...

2019-11-18 11:08:07 106

原创 Redis的各种部署原理及优缺点

一.单机优势:配置简单容易维护;劣势:容易发生单点故障(数据存在一台服务器上,如果这台服务器硬盘发生故障,会发生数据丢失情况),没有容灾措施;单个服务器存储容量有限;二.主从复制原理:通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失数据,为了避免单点故障,通常的做法是将数据复制多个副本以部署在不同的服务器上。为此Redis提供了复制的功能,可以实现一台Redis服务器数...

2019-11-15 15:56:03 976

原创 JVM运行时数据区域分析

1.程序计数器它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。分支、循环、跳转、异常处理、线程恢复等都需要依赖这个计数器完成。2.虚拟机栈虚拟机栈描述的是java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。局部变量表存放了java基础数据...

2019-11-12 15:42:05 91

原创 final、finally、finalize的区别和使用

java中的关键字有很多,今天我们就来聊聊平时不怎么用的final、finally、finalize首先来说说它们的作用1.final所处位置作用修饰类class表示该类不能作为父类 ,不能被继承修饰变量必须在变量被定义时赋初始值,切只能被读取,不可修改修饰方法该方法不可重写或重载修饰方法 参数该参数在该方法内不可被赋值,只能外部传入值2....

2019-11-12 14:17:39 182

原创 mysql优化(二)---索引

一、什么是索引我们在看一本书的时候会先查看书的目录,如果想看特定的一个章节,只要在目录中找到该章节的页码,就快速定位到该章节的位置。在mysql中存储引擎用类似的方法使用索引来快速查找到我们需要的数据。二、索引的类型索引有很多种类型,可以为不同的场景提供更好的性能。在mysql中索引是在存储引擎层而不是在服务器层实现的。不同的存储引擎支持的索引类型也不一样。1.B-Tree 索引B-...

2019-11-11 18:57:10 89

原创 RocketMq应用(一)---设计理念

一、简介RocketMq是一个基于主题的发布与订阅模式,也就是常说的消息队列,整体设计追求简单与高性能。核心功能:消息发送、消息存储(broker)、消息消费。二、特点1.摒弃了业界常用zookeeper充当信息管理的注册中心,而是使用nameServer来管理元数据(topic的路由信息等)。nameServer集群之间互相不通信,极大降低了nameServer的实现复杂度,相比zook...

2019-11-08 18:58:50 172

转载 长链接和短链接

开启传送门:HTTP长连接和短连接

2019-11-07 14:04:17 91

原创 Redis应用(五)---集合类型

介绍Redis支持两种集合分别是有序集合和无序集合集合和列表之间的对比集合类型列表类型有序集合类型存储内容最多232−12 ^ {32} - 1232−1个字符串最多232−12 ^ {32} - 1232−1个字符串最多232−12 ^ {32} - 1232−1个字符串有序性否是是唯一性是否是运用场景集合常用的操作是向集合中加...

2019-11-06 20:46:42 137

原创 Redis应用(四)---list类型运用

概述redis中的list类型可以存储一个有序的字符串列表。它是一个双向链表,常用的操作是向列表两端添加元素。适用场景链表可以非常快速地获取两端的元素,如获取排行榜数据;网站新鲜事;数据分页设计等。还能作为消息队列使用,但是不推荐使用,因为当前已经有很成熟的消息队列产品如rocketMq,kafka,activeMq等。redis的list不是专门为消息队列设置的,其中有很多限制。...

2019-11-06 16:41:26 244

原创 Redis应用(三)---散列类型hash

介绍redis的散列类型不能嵌套其他数据类型,它存储了字段和字段值的映射,是一种字典结构,但是字段值只能是字符串String。散列类型适合存储对象:使用对象类别和ID构成键名,用字段表示对象的属性,字段值存储属性值。运用场景例如我们需要在mysql中存一张汽车资料表IDcolornameprice1黑色宝马50万2白色奥迪100万3蓝色...

2019-11-01 13:37:34 527

原创 Redis应用(二)---String类型

Redis之String数据类型的应用String字符串是Redis的最基本数据类型,它能存储任何形式的字符串,包括二进制数据。你可以存储用户的邮箱、json化的对象甚至是图片。一个String类型的键允许存储的最大容量是512MB。1.从最基本的set、get命令开始这里get的时候如果没有这个键会返回一个空值2.递增数字当存储的字符串是整数形式时,可以用incr命令实现递增,并...

2019-10-30 09:13:08 78

转载 Homebrew的介绍和使用

开启传送门:Homebrew的介绍和使用

2019-10-28 19:37:11 344

原创 Redis应用(一)--启动配置

一.Redis简介Redis是一个开源的、高性能的、基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求。Redis还有很多高级功能,如可以作为消息队列使用(pub/sub),此外还有很多高性能的算法(后续在慢慢讨论)二.Redis部署(单机环境)redis有很多部署方式:单机,主从,哨兵,集群本文从最简单的单机模式开始了解因为是mac,简单点就直接用h...

2019-10-28 18:40:15 120

原创 线程的基本操作(六)---yield

yield方法操作系统是为每个线程分配一个时间片来占用CPU执行的,正常情况下只有占用CPU的线程使用完时间片后,线程调度器才会进行下一轮线程调度。如果线程在没有使用完时间片的情况下调用了Thread的yield方法,这个线程就会处于就绪状态,让出CPU的执行权。线程调度器就会重新从就绪队列里取一个优先级最高的线程执行。也有可能会取到刚刚让出CPU的线程。代码理解public class Y...

2019-10-28 13:10:41 510

原创 线程的基本操作(五)---中断

为什么需要中断在线程执行过程中,有很多场景需要终止线程的运行。这时就需要一个方法来结束线程并返回结果。中断的方法Thread类中提供了3个有关中断的方法:interrupt():设置中断标志位为trueinterrupted();检测中断标志,如果有设置会清除标志位isInterrupted():检测中断标志位使用场景大家都用过迅雷下载电影,假如一个电影下载到一半,可能是网速太慢...

2019-10-27 15:14:44 136

原创 线程的基本操作(四)---sleep and join

join等待线程执行终止join方法是Thread方法直接提供的方法,返回值是void适用场景:需要线程有序地执行,而不是被动随机等待CPU分配时间片。如多个线程加载资源,需要等待资源全部资源加载完毕再汇总执行下个操作。sleep顾名思义sleep方法是让线程休眠的方法,当线程调用了sleep方法后,调用线程会暂时让出指定时间的执行权,不参与CPU调度,但是不会释放锁。等待时间到了,线...

2019-10-27 12:30:17 135

原创 锁的分类和使用(一)

锁的概述在java并发编程中,经常引入锁,来处理复杂的线程变化。今天就来理一理有哪些锁1.乐观锁和悲观锁乐观锁和悲观锁是在数据库中引入的名词。可以在高并发环境下保护数据的正确性。乐观锁认为数据在处理过程中一般不会产生冲突,所以只在sql提交的时候检测冲突。如果有冲突则返回失败,通知用户自行处理。悲观锁认为数据在处理的时候一定会有冲突,所以在处理数据之前就加上事务。防止其他线程操作数据,来...

2019-10-25 16:26:30 426

原创 java基础(二) --- String,StringBuffer,StringBuilder

再谈String对象前我们先看段经典代码public class TestString { public static void main(String[] args) { String a = "hello"; String b = "hello"; String c = new String("hello"); Sy...

2019-10-24 18:35:36 88

原创 java基础(一)---- 基本数据类型

java语法中,在声明变量之前,必须要先指定数据类型。在java语言中一共有8种基本数据类型。类型存储容量(字节)取值范围int4-2147483648~2147483647short2-32768 ~ 32767long8-9223372036854775808~9223372036854775807byte1-128 ~ 127...

2019-10-24 17:33:17 80

原创 MySql优化之路(一)--- 字段的设计和类型选择

一张表的设计的好坏会直接影响到后期的性能问题。一个优秀的程序员应该提前考虑表的设计。字段设计原则1.更小的通常更好一般情况下,应该尽量使用可以正确存储数据的最小数据类型。因为更小的数据类型占用更少的磁盘、内存、和CPU缓存。2.简单就好简单的数据类型操作可以减小CPU的使用率。例如整型比字符操作代价更低,因为字符集的排序规则比整型更加复杂。尽量选用mysql的内建类型来存储日期和时间(d...

2019-10-21 16:12:48 277

原创 线程的基本操作(三)--- wait()方法

看个小例子:package demo.thread.wait;/** * 共享对象(鱼篓) */public class Well { public int count; public int getCount() { return count; } public void setCount(int count) { ...

2019-10-20 17:08:02 683

原创 线程的基本操作(二)--- 操作线程方法

线程的生命周期新建状态(new)此时线程刚刚创建,还未启动就绪状态(runable)线程调用了start() ,等待获取CPU资源,由CPU决定何时分配时间片执行。运行状态(running)线程处于运行阶段。运行run(方法)在运行阶段可做的操作有1.wait():wait方法是作用在共享变量上的,不是作用在线程对象上。当一个线程调用一个共享变量的wait()方法时,调用该对...

2019-10-20 17:03:54 176

原创 线程的基本操作(一)---java线程的创建方式

1.什么是线程在谈线程之前要先了解下进程,线程不会脱离进程单独存在。进程是代码在数据集合上的一次运行活动,是系统进行资源分配的和调度的基本单位。线程是进程的一个执行路径,一个进程中最少有一个线程,进程中的多个线程可以共享进程的资源。1.1.线程的创建java中有3中线程的创建方式:继承Thread类并重写run方法实现Runnable接口的run方法使用FutureTask方式...

2019-10-17 12:32:16 97

原创 java中的堆和栈

一、堆和栈的基本概念堆和栈是两种数据结构堆—先进先出栈—先进后出1.java堆1.1 概念java堆(java heap)是虚拟机所管理的内存中最大的一块。在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例。2.虚拟机栈2.1 概念java虚拟机栈描述的是java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(stack frame)用于存储局部变量表、操作数栈...

2019-10-16 16:53:10 184

原创 java静态代理实现

静态代理代理模式是java常用的设计模式之一,在使用这个模式之前,我们要先了解它的作用,为什么要这样用?代理分为静态代理和动态代理,这里主要了解下静态的,动态的之后再聊。为什么要用代理玩过白脸,黑脸的游戏么。你是一个白脸,提供很好很友善的服务,但是你不希望每个人都找你做事,所以找了黑脸控制对你的访问。黑脸就是你的代理。...

2019-10-14 14:24:25 108

原创 MySql横向分表

MySql横向分表现阶段主流互联网公司的业务量都很大,很容易就导致业务表变得臃肿,查询效率变低,再怎么优化sql;加索引最终还是不能解决问题,但是这些数据又必须要保存。这个时候就要考虑分表或者分库了。这里主要讨论如何去分表,分库之后再讨论1.根据表主键值范围分:比如1~2000放到tb_1;2001~4000放到tb_22.根据数值取模:余数为0放tb_1;余数为1放tb_2。这样做有一个...

2019-10-07 17:24:12 829

原创 java -source 1.5 中不支持 diamond 运算符

在用maven编译项目时报了一个错 java -source 1.5 中不支持 diamond 运算符 百度之后发现maven默认使用java5编译项目,如果没有指定jdk版本号就会有问题。只要在pom.xml文件中指定jdk版本号就可以了<build> <plugins> <plugin> &l...

2019-07-20 15:42:40 703 1

转载 浅谈java中的集合

打铁还需自身硬啊,干了3年程序员,面试的时候被问起一些基础知识还是一脸懵逼。  在讲集合之前先搞清楚一些概念。一、数组和链表的区别数组(list):是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需

2017-04-16 22:46:38 232

原创 java环境变量配置

新搭建一个java编程环境需要配置环境变量,在这里做一下归纳。官网下载jdk,最新是1.8的下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html有些公司运行环境可能对最新的jdk不兼容,在自己电脑上果断用最新的。。接下来就是安装jkd,默认安装地址是

2017-04-06 09:41:41 166

空空如也

空空如也

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

TA关注的人

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