- 博客(120)
- 资源 (1)
- 收藏
- 关注
转载 Java基础_构造方法
构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们,即构造函数的重载。一、构造函数特点构造方法的名称必须与类的名称相同。比如类的名称叫A,那么它的构造方法必须也叫A。构造方法的前面不能声明返回值类型,即便是void也不行。只有满足了这两个条件,编译器才会认定这个方法是构造方法。如果程序员没有在类中定义构造方法,那么在编译阶段,编译器会
2020-11-11 00:00:35
511
转载 Java基础_类与对象的区别
一、定义类:事物的描述。是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。对象:该类事物的实例。在Java中通过new进行创建。是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。二、区别类是一个抽象的概念,它不存在于现实中的时间/空
2020-11-09 23:01:48
590
转载 maven打包 package install deploy区别
一、构建项目的几个环节清理(clean):删除以前的编译结果,为重新编译做好准备编译(compile):将Java 源程序编译为字节码文件测试(test):针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性打包(package):将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应 war 包。安装(install):在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中。部署(deploy):将打
2020-11-05 23:54:25
1156
原创 springboot-PropertySource无法加载yaml解决办法
@PropertySource只对properties文件可以进行加载,但对于yml或者yaml不能支持。// 继承DefaultPropertySourceFactorypublic class YamlAndPropertySourceFactory extends DefaultPropertySourceFactory { @Override public Proper...
2020-03-29 23:01:25
2753
2
原创 springboot-指定profile启动
spring boot项目可为不同的环境配置相应的配置文件spring: datasource: db-name: sm profiles: active: @spring.active@---spring: profiles: test datasource: url: jdbc:mysql://localhost:3306/sm?autoReco...
2020-03-18 22:22:00
1373
原创 Java8 CompletableFuture与ThreadPoolTaskExecutor实践
一、CompletableFuture介绍Jdk8 CompletableFuture提供了新的异步编程思路,可以对多个异步处理进行编排,实现更复杂的异步处理。其内部使用ForkJoinPool实现异步,使用CompletableFuture可以把回调的实现改为同步调用实现。CompletableFuture提供了50多个API,现在分为场景来做介绍:1.1 3个服务并发调用,然后对结果进行合...
2020-03-01 17:39:33
4337
2
原创 Java8 Stream流使用
一、简述Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API借助同样新出现的(Lambda表达式、方法引用、接口默认方法等),极大的提高编程效率和程序可读性,同时它提供串行和并行两种模式进行...
2020-02-15 21:46:35
297
原创 四则运算表达式求值
一、题目计算“9 + (3 - 1) × 3 + 10 / 2”字符串的值二、解题思路2.1 后缀表达法(RPN):是一种不需要括号的后缀表达式法。规则: 从左到右便利表达式的每一个数字和符号,遇到数字就进栈,遇到符号就将处于栈顶两个数字出栈,进行计算,运算结果进栈,一直到最终获得结果。2.2 中缀表达式转后缀表达式规则:从左到右...
2019-11-17 11:48:15
294
原创 springboot——security实现验证码:使用自定义认证
在使用Spring Security的自定义认证之前,有必要了解Spring Security是如何灵活集成多种认证方式的。在spring Security中用户被称为主体(principal),主体包含了所有能够验证而获得系统访问权限的用户、设备或其他系统。主体的概念来自Java Security,自定义认证的基类是Authenticationpublic interface Authenti...
2019-10-27 23:50:30
972
原创 springboot——security实现验证码:自定义过滤器
验证码(CAPTCHA)的全称是Complete Automated Public Turing test to tell Computers And Humans Apart,翻译过来就是“全自动区分计算机和人类的图灵测试”。通俗地讲,验证码就是为了防止恶意用户暴力重试而设置的。不管是用户注册,用户登录,还是论坛发帖,如果不加以限制,一旦某些恶意用户利用计算机发起无限重试,就容易导致系统遭到破坏...
2019-10-27 21:21:02
2945
原创 springboot——集成Swagger2
一、Swagger2日常开发过程中,我们往往需要给前端(WEB端、IOS、Android)或者第三方提供接口,如果代码与文档分开管理,很容易导致改了接口但是未修改接口文档,通过swagger2我们可以根据代码自动生成接口文档,swagger2官网描述:When creating a REST API, good documentation is instrumental.Moreover,...
2019-10-27 10:14:44
222
原创 The POM for com.alibaba:druid:jar:1.1.10 is invalid
今天在家里电脑上编译一个网上下载下来的包的时候,控制台报出了这个错误:[WARNING] The POM for com.alibaba:druid:jar:1.1.10 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details开始一直以...
2019-10-24 23:18:16
16882
原创 springboot——security基于自定义数据库模型的认证
一、Maven配置本示例基于security5 + mybatis-plus + lombok<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</arti...
2019-10-11 01:39:41
238
原创 springboot——security基于Jdbc的多用户支持
一、pom.xml配置<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>...
2019-10-10 23:07:23
285
原创 springboot——security基于内存的多用户支持
一、pom.xml配置<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <...
2019-10-09 00:06:37
403
原创 springboot——security使用JSON登录
一、pom.xml配置<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <...
2019-10-07 23:29:11
962
原创 springboot——设置默认首页
最近基于前后端分离方式开发一个系统,前端同事编译出来的代码在dist/*目录下,而实际上希望访问系统地址的时候直接跳转到dist/index.html下,现需要做如下修改:@Configurationpublic class MyWebMvcConfigurerAdapter implements WebMvcConfigurer { @Override public voi...
2019-09-28 22:45:15
697
原创 springboot——集成redis cache
一、pom.xml配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId&...
2019-09-27 10:57:50
210
原创 springboot——集成阿里短信服务
一、快速入门1、注册账号;2、进入短信服务,点击新手引导;3、申请国内短信签名 和 申请国内短信模版;4、点击AccessKey创建AccessKey;5、点击OpenAPI Explorer进入,选择“SendSms”二、pom.xml配置<dependencies> <dependency> <groupId>org.spring...
2019-09-25 23:28:25
317
1
原创 springboot——使用七牛上传图片
一、快速入门快速入门1、注册账号2、创建存储空间, 命名xyz对应下面springboot 应用配置bucket3、创建成功后进入该空间,获取该空间的测试域名,对应下面springboot 应用配置中的path4、点击“个人面板—密钥管理”,获取 accessKey 和 secretKey二、pom.xml配置<dependency> <groupId>c...
2019-09-24 17:16:11
345
原创 springboot——集成druid
一、pom.xml配置<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <...
2019-09-23 09:55:55
209
原创 springboot——集成MongoDB
一、安装MongoDBsudo apt-get install mongodb二、配置MongoDBsudo service mongodb stopmongod --bind_ip_all三、springboot + MongoDB配置pom.xml配置<dependency> <groupId>org.springframework.boot&l...
2019-09-18 09:55:03
255
原创 springboot——集成redis
一、安装Redis在redis官网上找到最新稳定版本redis,当前最新版本是5.0.5,复制链接然后在Ubuntu上使用curl命令直接下载ouyp@ouyp-VirtualBox:~/redis$ curl -O http://download.redis.io/releases/redis-5.0.5.tar.gzouyp@ouyp-VirtualBox:~/redis$ tar -z...
2019-09-17 09:15:26
214
原创 mysql-8.0.11安装配置
一、下载Mysql-8.0.11安装包[下载地址](http://down-ww3.7down.net/pcdown/soft/xiazai/mysql8.rar)二、配置my.ini[mysqld]character-set-server=utf8#绑定IPv4 3306端口bind-address = 0.0.0.0port = 3306# 设置mysql的安装目彿base...
2019-09-03 19:50:13
267
原创 Apache-common StrSubstitutor进行占位符替换
一、代码示例public static void main(String[] args) { Map<String, Object> valueMap = Maps.newHashMap(); valueMap.put("firstName", "你好"); valueMap.put("secondName", "他好"); valueMap.put("menuId"...
2019-08-28 09:27:37
1143
原创 Java 覆写equals使用instanceof的陷阱
public static void main(String[] args) { Emp e1 = new Emp("chenssy", "23"); Emp e2 = new Emp("chenssy", "24"); Person p = new Person(); p.name = "chenssy"; Sy...
2019-08-05 20:47:22
278
原创 Jersey——30分钟速读《Java RESTful Web Service 实战》
一、Jersey入门1.1 REST简述REST(Representational State Transfer,表述性状态转移),源于REST之父Roy Thomas Fielding博士在2000年就读加州大学欧文分校期间发表的一篇学术论文——《 Architectural Styles and the Design of Network-based Software Architectu...
2019-06-27 14:29:14
1274
原创 Jersey——基本认证 & 摘要认证 & 表单认证
一、基本认证HTTP基本认证是指通过WEB浏览器或者其他客户端在发送请求的时,提供用户名和密码作为身份凭证的一种登录验证方式。在请求发送之前,用户名和密码字符串通过一个冒号合并,形式如:Username:Password,合并后的字符串经过BASE64算法进行编码。二、操作步骤本示例结合Tomcat提供的JDBCRealm实现认证和授权。现基于Spring5.1.7 + Jersey2.2...
2019-06-06 01:36:28
880
原创 Jersey——POST请求接收数组类型数据
一、场景说明后端需要接收多条数据实现批量绑定的效果,如果按照定义bean的话,实际上是一个List<Param>结构,我们情况看Postman的请求参数.[{ "elementId" : "9212066927850701332", "dataId" : "-211208903950905634_4", "metadata" : { "uuid": "67947291-6...
2019-06-05 10:58:03
2348
原创 Jersey——使用NameBding实现对特定类和方法拦截
一、场景说明与使用ContainerRequestFilter,ContainerResponseFilter等全局性过滤器不同,在有些场景下只需对特定的XXXResource做AOP拦截,这个时候@NameBinding名称绑定可以说是一种不错的可选方案。二、使用方法1.1 新增注解import javax.ws.rs.NameBinding;import java.lang.anno...
2019-06-02 23:36:26
1596
原创 Jersey——搭建Jersey + Jetty开发环境
一、引入所对应的包 <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>2.27</ve...
2019-05-28 23:52:55
1839
原创 Jersey——搭建Jersey + Grizzly开发环境
一、引入所对应的包 <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>2.27</ve...
2019-05-27 23:20:31
1608
原创 Jersey——返回图片格式数据
一、背景在使用Jersey实现Restful后端设计的时候,Jersey常用用于返回JSON格式数据,实际上Jersey是可以返回其他格式的数据的,在MVC中与Springmvc都是可以做为C的,由于项目上需要通过Jersey实现返回图片流的接口,为简单起见现采用springboot+jersey搭建示例环境。二、操作步骤使用Spring initializer创建,引入springboo...
2019-05-26 22:34:53
668
原创 使用ProcessExplorer分析占用CPU过高的Java线程
一、使用ProcessExplorer查看进程的线程信息,如截图有上图我们可知道线程4396和1956两个线程CPU占用率比较高(系统没有一个用户使用的情况下);二、使用计算器-程序员模式,将线程4396和1956转换为16进制,为112C和7A4三、使用Java自带的jstack命令导出线程dump命令:jstack 3092 > jstack.txtjstack命令更多介...
2019-05-08 21:35:07
1445
原创 排序算法——简单排序算法
一、算法原理通过N-1次遍历,从a[i+1] ~ a[n-1]中选择出最小的数a[j]将这个数设置到i位置。二、算法分析以数组{9,1,5,8,3,7,6}为例第一轮 i = 0,从{9,1,5,8,3,7,6}中找出最小值1,交换位置后:[1, 9, 5, 8, 3, 7, 6]第二轮 i = 1,从{9, 5, 8, 3, 7, 6}中找出最小值3,交换位置后:[1, 3, 5, ...
2019-04-22 00:03:09
154
原创 排序算法——希尔排序
一、算法原理希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。二、算法实现public static void main(String[] args) { int arr[]={9,1,5,8,3,7,6}; int d = arr.length; while (d >...
2019-04-21 23:39:07
157
原创 排序算法——插入排序
一、基本原理将一个数插入到已排序好的数列中,从而得到一个新的,个数+1的新的有序数列。二、算法分析以数组{6, 3, 8, 2, 9, 1,7}为例:i = 1:取3插入到有序数列[6]中,得到新的数列:{3, 6, 8, 2, 9, 1,7}i = 2:取8插入到有序数列[3,6]中,得到新的数列:{3, 6, 8, 2, 9, 1,7}i = 3:取2插入到有序数列[3,6,8]...
2019-04-16 21:49:47
176
原创 排序算法——快速排序2
一、基本原理选择第一个树作为基准数,通过一趟排序将比他小的数放在他左边,比他大的数放在他的右边。选择第一个数做为基准数p;从数列最后一个开始遍历,找出第一个比基准数小的数,索引为j,从数列第二个开始遍历,找出第一个比基准数大的数,索引为i;交换a[i]和a[j]的值;重复上面步骤直到i >= j,将a[i]和基准数交换位置,这样基准数就调整到数列中间;对“基准数左侧数列”和"基准...
2019-04-14 15:11:32
450
原创 排序算法——快速排序
一、基本原理选择一个基准数,通过一趟排序将比他小的数放在他左边,比他大的数放在他的右边。选择基准数,通常是数列的一个元素;将比基准数小的数放在基准数左边,把比基准数大的数放在基准数的右边,所以基准数放在数列的中间;对“基准数左侧数列”和"基准数右侧数列"执行以上操作。二、算法分析以数组{6, 3, 8, 2, 9, 1}为例:第一轮left = 0, right = 5,i = ...
2019-04-13 17:10:28
216
原创 排序算法——冒泡排序
一、算法原理比较相邻两个元素a[j]和a[j+1],如果a[j] > a[j+1]则交换两个元素的位置;对每一对相邻的元素执行同样操作,从而开始一对到结束一对,在这一步骤完成后最后一个元素就是最大的元素;针对所有的元素重复以上的步骤,除了最后一个;持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。二、算法分析以数组{6, 3, 8, 2, 9, 1}为例...
2019-04-12 16:36:29
346
ProcessExplorer.zip
2019-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人