- 博客(50)
- 问答 (1)
- 收藏
- 关注
原创 设计模式UML图解小册
工厂模式思想:在调用时显式传入类型参数,工厂负责通用的返回对应的实例给你。比如factory.getShape("Circle");表明我需要Circle的实例,工厂创建好之后返回给我抽象工厂模式思想:可以理解为工厂类的工厂,就是调用方首先需要传入类型参数获取对应的工厂实例,再通过调用工厂类的方法获取对象实例。比如首先通过FactoryProducer.getFactory("SHAPE");获取Shape的工厂,再通过factory.getShape("Circle");获取Circle实例单例模式.
2020-09-11 18:08:29
360
原创 Java8流式编程教程
Stream概念介绍Stream 不是集合,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。Stream(流)是一个来自数据源的元素队列并支持聚合操作,并且有串行、并行两种执行模式,并行模式充分的利用了多核处理器的优势,使用fork/join框架进行了任务拆分,同时提高了执行速度。Stream的创建集合创建List<Integer> list = new ArrayList<>();Stream<Integer> s
2020-08-20 10:44:27
606
原创 Spring源码部分封装类的理解
BeanDefinition - 是一个接口,提供获取Bean类名、scope、属性、构造函数参数列表、依赖的bean、是否是单例类、是否是懒加载等一些列信息。BeanDefinitionHolder - BeanDefinition包装类AnnotatedGenericBeanDefinition类 - 表示@Configuration注解注释的BeanDefinition类ScannedGenericBeanDefinition类 - 表示@Component、@Service、@C.
2020-08-19 17:50:21
274
原创 SpringMVC配置文件模板
web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
2020-08-19 14:58:07
434
原创 MyBatis配置文件模板
mybatis-config.xml简单配置<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <settings>
2020-08-19 14:56:04
558
原创 log4j.properties配置模版
### set log levels ### log4j.rootLogger = DEBUG , console , debug , error ### console ### log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.layout = org.apache.log4j.Pat
2020-08-19 14:45:31
189
原创 SpringAOP中AspectJ指示器execution()用法
应用场景:用于pointcut切点中来定位执行方法execution(public * *(..)) //任意public的方法execution(* set*(..)) //任意以set开始的方法execution(* com.service.EmailService.*(..)) //EmailService下的任意方法execution(* com.service.*.*(..)) //service包下的任意类的任意方法execution(* com.service..*.*(
2020-08-19 14:43:49
373
原创 FreeMarker模板引擎调研
踩坑记录:中文不显示问题:https://www.cnblogs.com/yunfeiyang-88/p/10984740.htmlFreeMarker调研:http://freemarker.foofun.cn/index.htmlFreeMarker基本指令:if 指令<#if animals.python.price < animals.elephant.price> Pythons are cheaper than elephants today.<#el
2020-08-19 14:40:25
235
原创 程序员资源分享
IDEA:Lombok 自动生成bean的get set方法等功能free mybatis plugin 方便在dao和xml之间切换translation 翻译插件Grep Console 高亮log不同级别日志,看日志的时候一目了然。Rainbow Brackets 彩虹括号。自动给代码块内花括号和括号加色,让视野更加注意在代码上Chrome:ModHandler 泳道插件EditThisCookie 网页Cookie管理插件沙拉查词Mac:
2020-08-19 14:22:26
290
转载 UML建模规范图示
统一建模语言简介统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。统一建模语言能为软件开发的所有阶段提供模型化和可视化支持。而且融入了软件工程领域的新思想、新方法和新技术,使软件设计人员沟通更简明,进一步缩短了设计时间,减少开发成本。它的应用领域很宽,不仅适合于一般系统的开发,而且适合于并行与分布式系统的建
2020-08-19 14:08:47
1421
原创 阿里Java编码规范笔记
对于DO/BO/DTO/VO/AO/PO的类命名时,使用UserDO,MoveDTO命名POJO类中布尔类型的变量不要加is前缀Long类型初始赋值时使用大写L注释的双斜线与内容之间1个空格// 注释内容单行字符不超过120个,超出换行缩进一个tab,且第三行起不再缩进方法覆盖时,必须加@Override注解方法过时时必须加@Deprecated注释,并清晰说明采用的新接口使用"test".equals(str) 而不是 str.equals(“tes..
2020-08-19 12:21:46
219
原创 $jacocodata 多余属性解决
问题场景:本地环境使用反射获取成员变量时测试正常,但将分支部署在泳道上发现反射多出一个属性值,value 为 $jacocodata原因分析:部署test环境时候,maven集成了jacoco来统计单元测试的代码覆盖率。才会多一个 $jacocoData解决方案:使用field 的 isSynthetic()方法做一次判断 if (f.isSynthetic()) { continue; }方法解释: /** * Returns {@code true} if this
2020-08-17 17:33:07
5245
1
原创 每次打开终端都要 source 环境变量问题
在用户根目录下~,编辑.zshrc文件,后面追加source /etc/profile保存重新打开即可
2020-08-17 17:25:19
1371
2
原创 /data 文件夹权限相关最佳解决方案
问题场景:程序运行经常出现Error: Read-only file system ,指在根目录下无法创建文件解决方案:可自行去目录下创建相关的文件,具体 Mac根目录下无法创建文件夹最佳方案:在用户目录下建立data文件夹,在根目录下建立软链接指向用户目录下data文件夹...
2020-08-17 17:24:12
6957
原创 Mac根目录下无法创建文件夹
问题场景:需要在根目录下创建data文件夹,出现 Read-only file system 字样解决方案:重新启动,在启动的时候按command+R,进入Recovery模式关闭sip 在top bar的实用工具选项,选择打开终端,输入命令:csrutil disable重启电脑挂载根目录 输入命令sudo mount -uw /创建好文件夹之后 开启sip 进入Recovery模式 输入命令:csrutl enable重启电脑...
2020-08-17 17:22:25
1457
原创 SpringMVC上传文件自动获取请求name并上传
配置解析器<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <!-- 50m --> <property name="maxUpl
2020-06-18 10:46:38
245
转载 CDN的简单理解
程序员每天提及的无数词当中,有一个是「CDN」,Ta的中文名是「内容分发网络」,读中文是令人蒙逼的,英文名是Content Delivery Network.CDN有啥用呢?它主要用来解决什么问题呢?它的原理大概是怎么样的呢?我们先拆解下这三个名词。CDN专注于「内容」,也就是CDN的C所代表的Content,专注于静态资源的分发和访问,比如一张图片,一个文本文件,一个视频,一个CSS,一个JS等等,任何以文件形式存储的,为了提高在互联网上的访问速度和质量,都可以将这个资源部署在CDN这个网络上。C
2020-05-21 20:41:34
1535
原创 RPC的简单理解
RPC(Remote Procedure Call)远程过程调用。即一台服务器上的应用调用另外一台服务器上的服务,通过序列化传递参数,服务端通过反射来调用服务端方法的一种通信协议。简单的说,RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。RPC 会隐藏底层的通讯细节(不需要直接处理Socket通讯或Http通讯) RPC 是一个请求响应模型。客户端发起请求,服务器返回响应(类似于Http的工作方式) RPC 在使用形式
2020-05-20 15:29:47
258
原创 Kafka使用指南
安装启动官网下载 http://kafka.apache.org/启动bin/zookeeper-server-start.sh config/zookeeper.propertiesbin/kafka-server-start.sh config/server.properties停止bin/kafka-server-stop.sh config/server.properties...
2020-04-26 11:48:01
202
原创 Maven打包指定Main方法
Maven版本3.6.3,quickstart版本1.4,注意这个插件要放在build子标签下,不要放在pluginManagement子标签中<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>...
2020-04-02 22:11:55
1561
原创 TCP握手异常处理
三次握手中,如果第三次握手丢失,客户端服务器会如何处理? 服务端:此时是SYN-RECV状态,触发超时重传机制,会等待3s,6s,12s后重新发送SYN+ACK包,以便客户端重新发送ACK包。而服务器重发包的次数,可以通过设置改变,默认为5。重发指定次数后,仍未收到客户端的ACK,服务端则关闭。 客户端:此时是ESTABLISHED状态,之后向服务端发送数据,服务端将以RST包(r...
2020-03-31 09:35:49
627
原创 JVM的栈上分配与TLAB
前言:我们都知道在Java中new出一个对象是放在Eden区中的,那一定new出来的对象就会被放在Eden区中吗?答案是否定的,先看一张图从这张对象的分配流程图中可以看到,其实刚开始分配一个新的对象的时候会有几次判断,并不是直接new在Eden区中的。JVM会根据对象的作用域或者大小把它放在合适的区域。栈上分配 针对那些作用域不会逃逸出方法的对...
2020-03-26 18:26:31
321
原创 Redis缓存占用内存满了如何处理
处理方案:1. 增加内存2. 搭建Redis集群3. 内存淘汰策略内存淘汰策略实现: 设置maxmemory参数,并指定maxmemory-policy策略,默认值为noeviction(禁止淘汰,会报错)maxmemory-policy:参数说明volatile-lru从设置了过期时间的数据集中根据LRU算法进行淘汰volatile-ttl与...
2020-03-23 12:08:19
1305
原创 加强MySQL安全的几种方案
1. 删除数据库不适用的默认用户2. 配置相应的权限(包括远程连接)3. 不可在命令行界面下输入数据库的密码4. 定期修改密码和加强密码的复杂度
2020-03-18 11:49:50
541
转载 ManagementFactory用法
监控JVM信息的工具有JConsole。而ManagementFactory是一个可以获取JVM线程、内存、编译等信息的一个工厂类。ManagementFactory使用:public class JvmInfo { private static final long MB = 1024 * 1024; public static void printAll() { ...
2020-03-17 16:49:11
3738
原创 垃圾回收器之CMS回收器和G1回收器
新生代老年代GC选项参数SerialSerial Old-XX:UseSerialGCParNewSerial Old-XX:UseParNewGCParallel ScavengeSerial Old-XX:UseParallelGCParallel ScavengeParallel Old-XX:UseParallelOldGCPa...
2020-03-17 10:45:55
340
原创 Http/2.0特性
Http/2.0:在不改动Http语义、方法、状态码、URI及首部字段的情况下,大幅提高Web性能。特性:二进制传输:Http/2.0在应用层和传输层之间增加了一个二进制分帧层。Http2.0会将所有传输的信息分为更小的消息和帧,并采用二进制编码,其中Http1.x的首部信息会被封装到Header帧中,而Request Body封装到Data帧多路复用:在Http/2.0中,帧是最小的...
2020-03-13 10:02:39
305
原创 HTTPS握手过程(加密解密过程)
一些常用的加密与HASH算法 - 非对称加密算法:RSA,DSA/DSS - 对称加密算法:AES,RC4,3DES - Hash算法:MD5,SHA1,SHA256 非对称加密:公钥加密,私钥解密,加密和解密用的不是一个密钥。对称加密:加密和解密用的是一个密钥。 Https中SSL/TLS协议使用了非对称加密,对称加密以及HASH算法。握手过程具体如下:...
2020-03-12 23:41:20
817
4
原创 Http长连接和短链接
Http属于应用层协议,所谓Http的长连接和短链接本质上说的是TCP的长连接和短连接。只有TCP连接才有真正的长连接和短连接这一说法。 所谓Http/1.1起支持长连接,并不是Http/1.1可以建立长连接,而是它支持以请求的方式进行连接的发起,该连接依然时基于TCP的Http/1.0和Http/1.1 Http/1.0默认使用短连接,客户端每次进行一次http操作,就...
2020-03-10 22:57:37
1042
原创 八大排序算法代码实现(Java版)
八大排序算法排序算法时间复杂度稳定性冒泡排序O(n²)稳定选择排序O(n²)不稳定插入排序O(n²)稳定希尔排序O(n^1.3)不稳定快速排序O(nlogn)不稳定堆排序O(nlogn)不稳定归并排序O(nlogn)稳定基数排序O(d(r+n))稳定PS:基数排序中r代表关键字的基数,d代表长度...
2020-03-03 17:54:21
238
原创 codeblocks运行报错不支持的16位应用程序
从官网上下载的Codeblocks17.12带编译器的版本,运行时候出错,显示不支持16为应用程序,网上的办法大多都好像已经没用了。尝试解决办法:我当时安装的位置是C盘,但是我的Project存放在D盘,最后我在C盘建了一个Project编译运行竟然成功了!虽然不知道是什么原理,但给大家说一下经供参考吧!...
2020-02-04 21:57:38
1875
原创 Starting the debuggee failed: No executable specified, use `target exec'.
从官网上下的CodeBlocks自带编译器调试器的版本17.12,运行时Debug调试不了日志:Debugger name and version: GNU gdb (GDB) 7.9.1Starting the debuggee failed: No executable specified, use `target exec’.Debugger finished with status...
2020-02-02 23:42:16
5322
7
原创 nexus2.x安装启动失败问题java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present
在 logs 中发现 java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present 的错误导致 nexus 启动失败解决方法:在%NEXUS_HOME%的lib文件夹下添加 jaxb-api-2.2.7.jar 和 activation-1.1.1.jar...
2019-12-26 17:44:12
653
原创 Android分享-Android权限大全
访问登记属性android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限获取错略位置android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米获取精确位置android.permission.ACCESS_...
2019-11-05 16:41:41
329
原创 java.nio.charset.MalformedInputException: Input length = 1
错误来源于《疯狂Java讲义》书上第15章输入/输出NIO部分在读入文件后使用将buffer的内容decode成字符型使用了GBK编码导致出错解决方法:经测试将GBK编码换成UTF-8即可正常运行,因为可能文件是以UTF-8格式保存的所以使用GBK会报错...
2019-09-02 16:34:02
2200
原创 C++PTA错题集
以app 方式打开文件时,当前的读指针和写指针都定位于文件尾。 T记录流的当前格式化状态标志字中的每一位用于记录一种格式,这种格式是不能被设置或清除的。F预定义的插入符从键盘上接收数据是不带缓冲区的。 F关于纯虚函数和抽象类的描述中,( )是错误的。 CA. 纯虚函数是一种特殊的虚函数,它没有具体的实现B. 抽象类是指具有纯虚函数的类C. 一个基类中说明有纯虚函数,该基...
2019-06-30 22:15:47
2375
2
原创 做一个简单的监控流量的悬浮窗
开发环境:Android9.0 API28 AS3.3.2测试日期:2019年6月26日 19:22:58—开始需要加入两种权限AndroidManifest.xml <!-- 获取网速所需要的权限 --> <uses-permission android:name="android.permission.PACKAGE_USAGE_STAT...
2019-06-26 19:46:31
1005
原创 Android开发-连接开发板蓝牙模块发送和接收数据
帮同学写一个连接小车蓝牙模块遥控小车的APP,在网上搜阅了很多资料,大概了解了蓝牙的工作原理,再经历了种种BUG后终于是成功连上了小车蓝牙,并可以发送数据,小车可以接收到,测试的蓝牙是Arduino小车的蓝牙模块,应该通用所有板子的蓝牙模块。开发环境:Android9.0 API28 AS3.3.2另外AVD是没有蓝牙模块的,要到真机上跑大概流程是:1.开启权限2.开启蓝牙被检测3.根...
2019-06-09 21:53:32
5065
16
原创 解决安卓悬浮窗permission denied for window type 问题
如果在代码中设置WindowManager.LayoutParams对象的type属性时,使用了划线的常量会报错,因为在你这个API版本不支持不建议你使用经测试 API 28 开发悬浮窗可用的type是WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY将type属性设置成这个常量即可...
2019-05-28 18:26:42
4110
2
原创 application中android:name的作用
AndroidManifest.xml 中 application 有一个属性是 android:name ,它是用来app启动时来关联一个application的,默认关联的是android.app.Application当app启动时,会默认创建一个application的实例 ,当在Activity中调用getApplication()方法时 ,就会返回这个实例,所以这个 android:...
2019-05-21 18:22:04
14257
1
空空如也
安卓如何获取uid进程的流量下载速度?
2019-05-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人