- 博客(42)
- 资源 (1)
- 收藏
- 关注
原创 JavaEE基础——泛型
1.编译的时候指定类型,避免编译器的拆箱和装箱操作提高性能2.提高代码的重用性3.在编译阶段就避免类型错误4.泛型的本质就是将参数的类型参数化。
2023-01-04 18:41:50
249
1
原创 各种原子类累加效率对比:强锁<AtomicInteger<LongAdder&LongAccumulator
结论:500个线程做十万次累加,synchronized+volatile操作效率差不多是AtomicInteger的一半,LongAdder和LongAccumulate差不多少是AtomicInteger9分之一,LongAdder所以被阿里java规范推荐使用,NB!结果展示:完整可运行代码:import lombok.Data;import lombok.Getter;import lombok.NoArgsConstructor;import lombok.Setter;.
2021-11-29 15:03:28
552
原创 java中的多态
多态多态的实现前提1.要有继承实现关系2.要有方法的重写3.要有父类方法引用指向子类对象多态的理解子类继承父类,子类相当于重写了父类的方法,但是成员变量没有覆盖,因此调用的时候调用的是子类的方法,调用成员变量是父类的,这就带来一个弊端不能引用子类中的成员变量和子类中特有的方法。多态中的转型父类:Animal子类:dogAnimal a=new Animal();父类引用指向子类对象,这就向下转型Dog dog=(Dog) a;强制向下转型...
2021-05-20 21:50:49
155
原创 java类中成员变量和局部变量的却别
位置不同局部变量:方法内部,方法声明上成员变量:类方法外,类中内存位置局部变量:栈成员变量:堆生命周期局部变量:方法结束之后结束成员变量:对象结束之后结束初始值局部变量:无默认值,需要赋值使用成员变量:有默认值...
2021-05-16 20:04:15
137
原创 SpringCloud教程——微服务架构总结
概述:微服务架构是继分布式架构SOA采用企业总线EBS内部模块通讯的架构,微服务架构也是在SOA架构的基础上的升级,微服务架构将不同模块拆分为一个个微服务,微服务在系统中的调用其实采用的是直接调用的方式,Eureka只是进行这些服务调用的管理,每个微服务都可以架构成集群注册到eureka中,消费端去调用服务通过ribbon组件将eureka中的这个服务全部拉取到本地再通过负载均衡算法去选择调用哪个微服务,被调用服务的一方会出现访问大或者异常情况则需要对这些服务引入熔断机制,加速服务调用失败处理而不是让调用方
2020-12-22 18:16:14
281
原创 springcloud教程——Springcloud config分布式配置中心
目录概述当有很多个微服务的时候,不同的微服务有不一样的配置,一个个去配置这些微服务的配置文件,也就是springboot的配置文件非常的麻烦,将配置放到git仓库当中,使用配置中心微服务去读取git仓库中的配置文件案例——配置分布式中心1.码云上配置一个仓库,创建一个application-profile文件user-dev.yml为在厂库中创建的微服务远程配置文件,配置文件的格式:application-profileapplication:应用名称profile:环境类型dev是开发环
2020-12-21 18:09:48
266
原创 Springcloud教程——GateWay网关组件
目录概述入门案例路由配置过滤器配置自定义过滤器全局过滤器局部过滤器GateWay中hystrix设置GateWay中设置RibbonGateWay中跨域问题GateWay的高可用GateWay与Feign的区别概述GateWay是一个网关应用,网关的作用就是过滤请求,将请求转发到对应的微服务上,这么做的好处是让请求不直接访问微服务而是通过网关,这样就可以对请求进行管理,隐藏微服务的ip和端口增强微服务的隐蔽性。最要的两个作用就是过滤和请求。入门案例
2020-12-18 17:46:15
993
原创 springcloud——Feign组件
目录概述入门案例1.在消费端微服务导入Feign依赖2.为需要调用的服务创建接口,在接口中添加注解和路径。Feign通过动态代理生成这个接口的实现类,调用远程服务返回结果。3.在消费端启动上添加@EnableFeignClients,开启Feign功能。Feign负载均衡Feign服务降级案例——feign使用hystrix1.创建一个失败信息处理类继承入门案例中定义的接口,实现方法返回需要返回的错误信息,在类中添加@Component注解,将类交给Spring管理2
2020-12-17 17:31:16
638
原创 springcloud教程——Hystrix组件
概述在微服务架构中,很多时候一个请求需要调用多个微服务实现,其中一个微服务出现阻塞,那么整个请求就会失败,如果不及时处理,其他请求会继续访问这个异常的微服务,系统的线程和资源是有限的,随着请求的不断增加,系统资源被耗尽从而导致其他服务也不可用。为了解决这个问题,springcloud整合了如Hystrix、Resilience4j等熔断器。熔断器的作用主要为服务降级,降级的方式有两点:线程隔离,服务熔断。线程隔离 每个微服务分配一个线程池,用户通过线程池中的线程去访问微服务,如果线程池中的线
2020-12-17 16:08:12
344
原创 springcloud教程——Ribbon实现负载均衡
概述eureka集成了Ribbon组件,直接使用Ribbon组件即可完成对服务端调用的负载均衡。通常Eureka注册相同功能的服务有多个,消费端如何选择服务这就需要消费端去判断,使用ribbon可以将选择服务交给Eureka来做。案例1.启动多个服务端2.在消费端template生产方法中添加@LoadBalanced注解3.使用服务名称+接口路径调用服务为什么不使用ip+端口的地址?Ribbon在拦截请求的时候会去Eureka注册中心去选择服务,通过服务名称去查找需要访问的服务
2020-12-16 18:14:45
214
原创 springcloud教程——Eureka注册中心集群搭建
目录概述案例:启动两个eureka服务,让两个服务互相注册1.搭建一个eureka服务 2.修改配置文件3.jvm配置中添加多个启动项,添加port和defaultZone地址,10086端口的eureka服务启动端口为10086,注册地址为http://127.0.01:10087/eureka,10087服务反之端口为10087,注册地址为http://127.0.01:10086/eureka4.启动配置的服务,使用http://localhost:10087/...
2020-12-16 16:55:53
540
原创 springcloud教程——Eureka注册中心入门案例
目录SpringCloud概述Eureka注册中心入门案例github地址注册中心搭建1.创建一个springboot工程2.在pom文件中引入eureka注册中心依赖4.在application.yml或者properties文件中配置5.启动服务,通过自己填写的地址和端口号可以访问eureka的页面http://localhost:10086/服务提供方1.创建一个springboot项目,在项目中添加springboot的启动依赖和eureka的客户端依..
2020-12-16 11:45:10
752
原创 Zookeeper在linux中安装教程
1.下载地址:http://archive.apache.org/dist/zookeeper/2.上传到linux3.解压到目录下4.修改zookeeper文件夹中zoo_sample.cfg 改名为zoo.cfg5.在zookeeper目录下创建data文件夹6.修改zookeeper配置文件zoo.cfg中的dataDir为自己创建的data路径7.在bin目录下使用./zkServer.sh start启动8../zkServer.sh status查看是否启动9./
2020-11-17 10:16:18
1159
原创 docker中tomcat容器访问另一个容器中的mysql出现 java.net.NoRouteToHostException: No route to host (Host unreachable)
1.查询容器中的mysql的ip地址 1.1进入mysql docker exec -it 719 /bin/bash 1.2 查询ip地址2.修改web程序中连接为jdbc.url=jdbc:mysql://mysql容器中的地址:3306/case?characterEncoding=utf8&rewriteBatchedStatements=true&allowMultiQueries=true3.重启docker中的tomca...
2020-11-13 17:44:19
1076
2
原创 java实现二叉树前序、中序、后序递归遍历详解步骤和图解
二叉树遍历概述前序遍历:根——>左子树——>右子树中序遍历:左子树——>根——>右子树后序遍历:左子树——>右子树——>根二叉树数据结构:链表实现的二叉树遍历对象前序遍历详细图解:后序和中序大致相同就不列举了二叉树节点类 public class Node { Object value; //结点值 Node leftChild;//左子树的引用 Node rightChild;//右子树的引用 public
2020-07-17 10:38:01
1203
原创 Apache POI Word中复制表格
注:由于我没找到网上现成的方法,使用起来也不满足我的需求,因此自己摸索出来一种使用场景:word中已经有一个表格,将这个表格沿着word复制这个表格,自己定义需要的个数 XWPFDocument doc = new XWPFDocument(srcFile); //获取表格列表 List<XWPFTable> tables = doc.getTables(); //获取需要复制的表
2020-07-06 14:56:06
2150
1
原创 Java动态代理实现
概念增强某个类的功能。真实对象:需要被增强的对象代理对象:包含增强方法的对象。代理模式:代理对象代理真实对象,实现增强真实对象的效果。代理分类静态代理:有一个类文件描述代理模式动态代理:在内存中生成代理类实现步骤代理对象和真实对象实现同一个接口。 代理对象=new Proxy.newInstance(); 使用代理对象调用方法。 增强方法。增强的方式:1...
2019-12-09 10:14:51
187
原创 bootStrap中pagination样式在jsp实现分页
1.在bootstap官网上查找分页模板2.放到jsp中添加需要跳转的接口<div> <nav aria-label="Page navigation"> <ul class="pagination"> //当前页面的页码,如果是第一页上一页的不可点击 <c:if test="${pb.cu...
2019-12-04 19:16:00
1000
原创 mysql中my.cnf不生效解决
1.指定mysql启动的配置文件mysqld --defaults-file=/etc/my.cnf --user=root,这里指定的/etc/my.cnf文件2重启mysql其他解决方案:1.my.cnf修改文件权限为644
2019-11-28 10:48:08
4622
3
原创 Socket文件上传例子
定义:Socket通讯使用Socket套接字进行通讯,客户端向服务器端发送Socket类,数据传输通过Socket提供的输入流和输出流,服务端通过ServerSocket提供的accept方法接收客户端的Socket类,通过这个类和客户端进行数据流传输,数据流类型自行定义客户端代码 public static void main(String[] args) throws Except...
2019-11-20 10:29:04
197
原创 Apache poi如何在word中的表格中插入表格,图片等操作
1.引入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.0</version> ...
2019-09-17 09:05:14
5077
3
原创 Java实现将一个字符串中特定两个子串之间内容的替换
package cn.shishu.enumtest;import java.util.regex.Matcher;import java.util.regex.Pattern;public class ChangProcess { public static void main(String[] args) { String startString="电子物证:"; St...
2019-04-16 17:38:19
6933
原创 软件工程各个流程主要的图
可行性分析系统流程图对系统中数据在各个“系统各部件”之间的流动过程的描述,而不是加工过程的描述。以下是系统流程图的基本符号:以下是系统流程图的系统符号:数据流图概述:软件工程中描述一个系统的时候,先通过系统流程图,描绘出数据在各个系统部件和模块的数据走向,再通过数据流图描绘出每个部件或者系统的模块中的基本逻辑,其中逻辑只是数据大致的输入和输出的过程,而不是详细的程序...
2019-03-15 10:45:30
6437
原创 阿里巴巴Java技术规范学习
类名命名规范类名使用UpperCamelCase命名法,也就大骆驼命名法抽象类以Abstract或Base开头异常类使用Exception结尾测试类使用测试类名开头,Test结尾其他命名规定方法名使用lowerCamelCase命名法,也就是小骆驼命名法常量单词全部大写,单词之间用下划线隔开,例:MAIN_CLASSpojo中的boolean类型的方法不能用is开头...
2019-03-14 11:09:59
477
原创 Freemaker对注入的元素判空
对注入的字符判空: <w:r w:rsidR="00A27C45"> <w:rPr> <w:rFonts w:hint="eastAsia"/> </w:rPr&g...
2019-01-11 14:52:01
254
原创 Freemaker使用List标签实现多张图片插入,导出为word
昨天下午因为freemaker插入list图片集合踩了一些坑,因此记录一下希望对大家有用,包含一些注意事项。1.现将模板转存为xml文件。需要插入信息的地方用freemaker表达式填充,放图片的地方先放一张图片,完成后转存为xml文件2. 将xml文件保存后,将后缀改为ftl,应为要用到freemaker中的list标签,xml无法显示因此需要将后缀转为ftl3.将ftl中的图片...
2019-01-09 12:13:03
1597
1
原创 Process 'command 'E:\AndroidSDK\ndk-bundle/ndk-build.cmd'' finished with non-zero exit value 2问题解决
我在网上收了一些教程,说是ndk版本的问题,我的版本是18的,我下载了一个16的版本放到ndk-bundle目录下就好了,希望对你有帮助,下面是下载16版本的ndk的百度网盘地址。链接:https://pan.baidu.com/s/15c1zhRuJAYAIT3Q6ULJ8dg 提取码:kugm ...
2018-11-06 18:13:22
11068
1
原创 Java基础——监听器的使用和原理(含有可执行demo)
监听器原理概述:监听器包含三个部分:事件(接口),监听器(接口),事件源(类,继承事件接口)。事件:包含一组动作事件源:发生时间的地方,事件有的动作它都有,因此需要继承事件,还有注册监听器来查看事件是否发生监听器:查看事件是否发生,处理事件发生后做什么事情,因此需要包含一个处理器,处理器中传入事件听起来有点拗口,具体关系这篇博客里面有:https://blog.youkuaiyun.com...
2018-11-06 16:17:33
686
原创 Litepal在没有存数据之前,需要在主线程中去先去存一些不必要的数据
使用Llitepal存储的时候,当数据库为空的时候在子线程去存储数据无法存储,单目调试说的是调到主线程中去了!然后我在主线程中先存入点数据在去子线程存就可以了,这个bug卡了3个小时,在这里记录一下。看了《第一行代码》上面说的litepal在第一次调用的时候就初始化了数据库,估计是litepal需要在主线程初始化,我猜的! ...
2018-11-01 11:11:40
411
1
原创 使用adb工具修改android分辨率
1.下载adb_tools,解压到电脑上任意位置2. 配置abd的环境变量,在系统变量path后面添加adb的解压路径,在dos命令下输入adb,出现adb信息就是安装成功了3. 安装Jdk-8u131-windows-x644.使用USB连接和无线网连接需要保证安卓端的ip和自己电脑ip在同一网段下,使用“adb connect 安卓端ip地址”连接测试,安卓机器上会提示US...
2018-10-17 13:50:27
22945
1
原创 Android 中 Intent 的概念及应用
Intent概述:intent是android程序中组件之间进行交互的一种重要方式,它指明当前组件想要执行的动作,并且可以在各个组件之间传递数据。Intent的作用:启动活动、启动服务、发送广播等。显示intent的使用1.在AndroidManifes.xml中进行注册(如下图所示),在activity中通过“.类名”或者类的全路径名进行注册,使用“.类名”是因为前面的包名已经定义,...
2018-09-08 13:29:39
2633
原创 andorid中activity的四中启动模式
1.1标准启动模式概要:android采用的是任务栈的形式去管理activity,antivity通过先进后出的方式进行入栈和出栈。这样就可以实现后退键的模式,顶部的activity弹出,上一个栈就到了栈顶。在android中配置启动模式的方法在AndroidManifest.xml中去配置:1.2singletop的启动模式概要:当activity在栈顶进行启动的时候就不生成新的...
2018-09-06 17:53:59
398
原创 linux 的安装与配置
一、 VMware安装1. 双击VMware-workstation-full-12.1.0-3272444.exe,一路下一步即可安装完成2. 在开始菜单中,选择程序中的VMware Workstation Pro,单击打开软件3. 选择帮助菜单中的输入许可证秘钥,输入“VMware任意版本永久KEY注册密钥.txt”文件中的一个秘钥
2017-07-04 18:11:42
353
原创 Date和String类型之间的转换,通过Calendar类求出年龄
通过使用SimpleDateFormat这个类中的format方法和parse方法将Date类型和String类型之间的转化
2016-06-02 23:08:45
595
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人