自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文学会Tomcat优化,查看tomcat中jvm内存结构

查看tomcat中jvm内存结构图形化界面查看localhost:8080/manager/status可以查看manager页面如果是远程访问tomcat,会报403无法访问错误1.红框1中告诉我们没有权限,提示我们修改context.xml文件manager权限修改:vim webapps/manager/META-INF/context.xml对于红框中部分进行注释或者修改,如果想要安全性高一些,可已修改allow值,支持IP地址的正则表达式2.403错误中红框2告诉,如果想访问m

2021-02-09 16:47:41 1046

原创 UCloud云服务器上部署web项目环境

最近在UCloud买了一个云服务器,准备记录一下在Linux上怎样部署一个web项目并运行起来部署web项目,只需要安装好JDK、Tomcat和MySQL就可以了,一下提供给大家安装包一、安装gcc,lrzsz二、安装JDK环境1.解压文件tar -zxf jdk-8u162-linux-x64.tar.gzmv jdk1.8.0_162/ javamv java /usr/local/cd /usr/local/java/pwd2.修改配置文件编辑配置文件:vim /etc/prof

2021-01-28 11:54:01 1438

原创 springboot部署在云服务器上遇到的各种问题

前言当在idea中成功搭建好ssm框架,本地也成功运行于是准备放到云端进行测试接着我把war包放入云服务器下的tomcat中,启动tomcat,tomcat的页面能成功显示,但是一输入和idea能成功打开页面同样的项目路径就是报404错误,我以为是云服务器上的tomcat有问题,放到本地tomcat结果也是一样404错误。我就开始一步一步寻找错误。首先我想springboot内置了tomcat,是否和外部tomcat有冲突,于是百度一番后发现要添加servlet-api依赖,去除自带tomcat,修改

2021-01-21 17:31:16 788

原创 Java8新特性(三) 方法引用

方法引用与构造器引用方法引用方法引用可以看做是Lambda表达式深层次的表达。换句话说,方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名字来指向一个方法,可以认为是Lambda表达式的一个语法糖。当要传递给Lambda体的操作,已经有实现的方法了,可以使用方法引用!要求:实现接口的抽象方法的参数列表和返回值类型,必须与方法引用的方法的参数列表和返回值类型保持一致!(针对于情况1和情况2)格式:使用操作符 “::” 将类(或对象) 与 方法名分隔开来。如下三种主要使用情况:

2021-01-20 14:32:04 113

原创 多线程的生产消费者问题,多线程下如何实现加减平衡,JUC实现

synchronized不能包含代码多了,也不能包含代码少了。简单版的生产消费者模型基本写法需要运用到线程通信wait()class PCModel{ int num=0; public synchronized void produce() throws Exception { if(num!=0){ this.wait(); } num++; System.out.println(Thre

2021-01-15 15:17:51 90

原创 集合(二)Map接口+源码分析(HashMap重点)

Map 接口Map:双列数据,存储key-value对的数据HashMap:作为Map的主要实现类;线程不安全的,效率高;可以存储null的key和valueLinkedHashMap:保证在遍历map元素时,可以按照添加的顺序实现遍历。原因:在原有的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素。对于频繁的遍历操作,此类执行效率高于HashMap。TreeMap:保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的自然排序或定制排序底层

2021-01-11 16:13:19 110

原创 集合(一)Collection接口+源码分析(ArrayList重点)

Collection接口单列集合,用来存储一个一个的对象Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。JDK不提供此接口的任何直接实现,而是提供更具体的子接口(如:Set和List)实现。在 Java5 之前,Java 集合会丢失容器中所有对象的数据类型,把所有对象都当成 Object 类型处理;从 JDK 5.0 增加了泛型以后,Java 集合可以记住容器中对象的

2020-12-28 18:02:14 138

原创 Redis(二)常见配置文件redis.conf

参数说明reids.conf配置项说明如下:1.Redis默认不是以守护进程的方式运行,可以通过配置项修改,使用yes启用守护进程​ daemonize no2.当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定​ pidfile /var/run/redis.pid3.指定Redis监听端口,默认端口为6379,作者在自己的一片博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,

2020-12-22 09:52:31 126

原创 Redis(一)CAP+BASE、数据类型和常用关键字

分布式数据库中的CAP原理CAP+BASEC:Consistency(强一致性)A:Availability(高可用性)P:Partion tolerance(分区容错性)CAP理论图的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。CAP的理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于在分布式的项目下,不同的服务器之间的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须要实现的。所以我们只能在一致性和可用性之间

2020-12-17 15:52:24 1482

原创 String的练习题

模拟一个trim方法,去除字符串两端的空格。将一个字符串进行反转。将字符串中指定部分进行反转。比如“abcdefg”反转为”abfedcg”获取一个字符串在另一个字符串中出现的次数。比如:获取“ ab”在 “abkkcadkabkebfkabkskab” 中出现的次数获取两个字符串中最大相同子串。比如:str1 = "tsghjaglssloggeramzt“;str2 = “xvloggerbny”提示:将短的那个串进行长度依次递减的子串与较长的串比较。对字符串中字符进行自然顺序排序。..

2020-12-08 14:41:58 107

原创 多线程(二)同步问题(synchronized 与 Lock 的异同,sleep () 和 wait () 的异同)

线程同步优点:同步的方式,解决了线程的安全问题。缺点:操作同步代码时,只能有一个线程参与,其他线程等待。相当于是一个单线程的过程,效率低。操作共享数据的代码,即为需要被同步的代码。共享数据:多个线程共同操作的变量。同步监视器,俗称:锁。任何一个类的对象,都可以充当锁。要求:多个线程必须要共用同一把锁。在实现Runnable接口创建多线程的方式中,我们可以考虑使用this充当同步监视器。1. 关键字:synchronized同步方式一:同步代码块synchronized(同步监视器){ /

2020-12-07 14:00:47 393 1

原创 Oracle 存储过程中sql的拼接(多个单引号理解)

在存储过程中动态sql拼接的两种写法单引号IN_PROTOCOL_VERSION:= '1';OPEN p_cur FOR SELECT * FROM ACS_CMS_TRANSACTION WHERE 1=1 AND (PROTOCOL_VERSION like '%'||IN_PROTOCOL_VERSION||'%'); 三引号IN_PROTOCOL_VERSION:= '1';sqls:='SELECT * FROM ACS_CMS_TRANSACTION WHER

2020-11-18 14:55:59 2839

原创 多线程(一)基础知识点梳理(线程的四种创建方式)

基本概念:程序、进程、线程程序:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。进程:是程序的一次执行过程,或是正在运行的一个程序线程:进程可进一步细化为线程,是一个程序内部的一条执行路径。一个Java应用程序java.exe,其实至少有三个线程:main()主线程,gc()垃圾回收线程,异常处理线程。当然如果发生异常,会影响主线程。基本概念:并行与并发并行:多个CPU同时执行多个任务。比如:团队多人同时开发一个项目不同模块并发:一个CPU(采用时间片

2020-11-17 15:23:05 156

原创 Java8新特性(二) 接口中的默认方法和静态方法(面试题:抽象类和接口的区别)

1. 为什么要有这个特性?抽象类和接口设计目的接口的设计目的,是对类的行为进行约束(更准确的说是一种 “有” 约束,因为接口不能规定类不可以有什么行为),也就是提供一种机制,可以强制要求不同的类具有相同的行为。它只约束了行为的有无,但不对如何实现行为进行限制。对 “接口为何是约束” 的理解,我觉得配合泛型食用效果更佳。而抽象类的设计目的,是代码复用。当不同的类具有某些相同的行为 (记为行为集合 A),且其中一部分行为的实现方式一致时(A 的非真子集,记为 B),可以让这些类都派生于一个抽象类。在这

2020-11-13 18:17:16 731

原创 Java8新特性(一) Lambda 表达式(函数式编程)和函数式接口

为什么使用Lambda表达式避免匿名内部类定义过多可以让你的代码看起来很简洁去掉一堆没有意义的代码,只留下核心的逻辑Lambda表达式Lambda属于函数式编程,学习Lambda表达式,需要理解函数式接口(Function Interface)函数式接口的定义:任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口。使用@FunctionalInterface注解可以检测该接口是否为函数式接口@FunctionalInterfacepublic interface Cat{

2020-11-05 17:08:15 170

空空如也

空空如也

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

TA关注的人

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