- 博客(105)
- 资源 (4)
- 收藏
- 关注
原创 关于方法形参中的final关键字
文章目录说明一、final关键字介绍1、final 修饰类2、final 方法3、final 修饰变量二、问题结果说明阅读HashMap 时遇到很多final修饰的方法参数的情况,当时查阅一些文章没太理解精髓,近日接受新项目发现每个方法都是如此修饰的,激发了好奇心,想深入学习一下这个为你。一、final关键字介绍1、final 修饰类final修饰类的时候,被修饰的类不能被继承,注意final类中的所有成员方法都会被隐式地指定为final方法,继承编译不通过2、final 方法final
2021-09-20 17:17:50 1886
原创 java方法返回值类型前泛型<B> List<B> call(B b)...
前提:工作中遇到了这种类型的方法,比较新奇记录以作积累。结论:用于处理类的泛型与方法泛型不一致的场合当方法入参泛型与类泛型一致并且方法没有标注返回泛型,则要求方法的泛型必须与类泛型一致;如下:分别入参与泛型指定的一致与不一致情况,表明:如果入参泛型非类指定泛型则编译异常,子类与实现类不受影响,视为统一类型。当方法签名处添加泛型后,参数就会接纳任意类型的参数了,如下:相当于重新定义了test1方法的入参类型,有点“就近原则”的影子,最靠近方法的类型设定限定效果最强,此时入参类型可以任
2021-09-20 15:32:52 4253
转载 Java行时数据区与Java内存模型
Java内存区域(运行时数据区域)和内存模型(JMM)Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java运行时数据区域众所周知,Java 虚拟机有自动内存管理机制,如果出现内存泄漏和溢出方面的问题,排查
2021-09-03 10:22:03 107
原创 Eclipse /STS导航栏变色
文件尾部追加全部如下:#org-eclipse-jdt-ui-PackageExplorer Tree,#org-eclipse-ui-navigator-ProjectExplorer Tree,#org-eclipse-ui-views-ContentOutline Tree,#PerspectiveSwitcher ToolBar {background-color: RGB(199,237,204);}
2021-09-02 10:23:08 1603
原创 关于shift-jis编码转换utf-8
工作中遇到了一个日本客户的文件编码为shift-jis的文件,客户系统的文件要与本地的一些文件做比较,由于数据量比较大需要用对比工具进行比较,操作系统被系统部设置成了半英文半日文形式(不要太酸爽),采用winMarge工具对比问题来了.文件本身编码格式不一致尽管数据拿眼一看就知道无差异但是仍然出现了不一致.这时候需要文件的编码一致,同事教我将.txt文件另存为一个文件然然后选择指定的编码格式,然后进行比较就没问题了,但是…他电脑是日文系统,跟我这个杂合系统有差异,他是把本地系统文件转为客户编码文件,然后对
2021-08-31 13:36:50 7492
原创 java 乐观锁的一种实现CAS(compare and swap)比较交换 和 AutomInteger类初了解
序:关于并发编程控制是java中的一部分重点和难点部分,一般工作中写业务逻辑也很难用到,但当晋级和面试的时候确不可不免的被考量。换工作的时候发现新公司采用了一种巧妙的方式(无知所以巧妙)实现了乐观锁(有种坐井观天的感觉),决定给自己敲响警钟,不要放弃学习和进取的心。正文:业务更新与删除的时候采用java sevice类中结合数据库查询来保证并发操作的安全性,这种方式贯通了前后端,首先将数据查询到前端展示,无论是接下来更改还是删除,数据库表的updatetime和主键共同作为条件操作,一旦数据库中的相关
2021-08-30 15:32:44 536
原创 单机host文件配置为多域名
以win10为例:最近学习微服务做到多个注册中心集群的情况,需要用到同一台机器上两个注册中心需要有不同的域名来支持,记录修改过程1.文件位置,C:\Windows\System32\drivers\etc 目录中如图:说明:重要文件,建议在当前文件夹下“复制“作为备份,另外文件为只读属性,可以复制一份打开修改,然后再复制到该路径下,删除源文件即可。2.复制修改文件,不修改默认值继续在下面追加即可,不要删除该文件,感兴趣小伙伴可以查询下具体语句的意义,过滤一些网站还是很方便的,有些网站访问不了也可
2021-08-23 15:38:00 1645
原创 重复Key:value数据排序后去重,TreeMap,List.sort()
领导要求整理一批source修改记录,主要是记录修改的源文件+修改时间+文件在工程中的目录。首先从类似禅道的web站获取数据(根据日期履历复制到本地),然后找出文件的最终修改时间。主要时间消耗在按日期复制修改文件履历上面。主要难点在于后期数据去重,对被修改文件的最新时间获取。起初想着一条一条在excel上面人工检索核对,大概有四个月的数据,不停的搜索然后去重就可以了。比较费劲,懒惰是程序员的优良品质,想到重复工作还是写个方法吧。数据类似 :目录–>时间形式,键值对形式直接使用map处理,目录文件
2021-08-20 17:37:55 393
原创 如何快速接收新项目代码
最近换了工作,对于新项目来说一切都是从头开始,总结下如何快速接融入新团队如何分析接收行项目代码.1.摆正心态对于一个新环境此时最重要的是保持良好心态,不要过于急躁的翻找代码,跑项目看文档,一般新东家都会预留时间给新融入团队的同事来学习和接收信息,无论是行业的业务信息还是代码规范信息,出来炸到特别是看到海量的代码和繁重的开发工作都会感到压力山大,我刚入现在公司的时候就是这状态,完全吃不消,后来想想,公司也不是请我来拯救公司拯救项目的,没必要把自己看的那么重,保持平常心,按时上下班就好了,而且一般都会有人带
2021-08-05 21:56:04 399
原创 自定义异常类ServiceException
自定义异常类一般是为了配合自定义日志用的,对程序员关注的异常信息能更有针对性,自定义异常一般都会继承RuntimeException类.并实现其中的方法,同时将自定义异常信息向上传递给父类直至顶级父类Throwable,package app.base;import org.apache.log4j.Logger;/** * * * @author hxf */public class ServiceException extends RuntimeException {
2021-08-04 22:56:32 5628
原创 eclipse代码规范管理sonarLink插件
eclipse需要安装sonarLink插件,同时sonarQube需要注册账号密码,通过eclipse连接到sonarQube进行代码扫描管理,同时需要本地下载nodeJS配合启用扫描。第一步:插件安装选中add选择后导入下载的软件包添加软件包点击ok后继续下步骤全选安装后进入最后一步重启修改elcipse启动配置文件追加编码格式然后是显示sonarlit界面同时去掉自动扫描代码然后就可以进行扫描了,控制台观察扫描结果...
2021-08-03 15:30:37 624
原创 socket向指定ip写出数据
建立socket链接准备数据写出数据接收返回数据代码如下:public class WebServiceClient { public static final String ip = "localhost"; public static final int port = 8081; public static final String domain = "/xxx/xxx/service/hzService?wsdl"; public static final String name.
2021-08-02 21:42:33 535
原创 oracle 了解数据库基础 oracle client
刚转行做Java开发时,连数据库和数据库客户端也不清楚,遭到了嘲讽,自己更是满头大汗。随着慢慢学习意识到“oracle 也不过是一款软件而已,通信协议、软件架构、IO操作,端口监听… … ,跟我开发的软件异曲同工罢了。cs架构软件采用客户端-服务端方式,需要下载客户端client和服务端程序,然后采用ip+port+user+pass的形式进行操作数据库,客户端输入不同命令到服务端,服务端解析命令后将结果返回到客户端。这是最简易的使用oracle的情况,然而命令行的界面对客户来说并不够友好而且像导出ex
2021-08-02 17:37:16 1185 1
原创 HashMap学习总结
说明:hashMap面试被问到的几率相当高了,为了接下来的工作与面试记录入下什么是map?map就是用于存储键值对(<key,value>)的集合类entry:英语单词,主要用作为名词,作名词时意为"进入;入口;条目;登记;报关手续;对土地的侵占"每个 key 只能对应一个 value, 多个 key 可以对应一个 value在将键值对存入数组之前,将key通过哈希算法计算出哈希值,把哈希值作为数组下标,把该下标对应的位置作为键值对的存储位置,通过该方法建立的数组就叫做哈希表,而这
2021-07-30 16:50:07 82
原创 学习Nio源码阅读 Buffer
(一)、对于每个非布尔原始数据类型都有一个缓冲区类分别是:ByteBuffer、CharBuffer、DoubleBuffer、FloatBuffer、IntBuffer、LongBufferShortBuffer,没有 BooleanBuffer尽管缓冲区作用于它们存储的原始数据类型,但缓冲区十分倾向于处理字节。非字节缓冲区可以在后台执行从字节或到字节的转换,这取决于缓冲区是如何创建的。(二)、ByteBuffer:主要属性,mark 标志位,position 位置 默认为0,lim
2021-07-30 16:48:17 93
转载 UML学习
平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:一、类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法。那么属性/方法名称前加的加号和减号是什么意思呢?它们表示了这个属性或方法的可见性,UML类图中表示可见性的符号有三种:
2021-07-30 11:42:45 193
原创 jdk1.8 HashMap.put(k,v)方法源码阅读
基于jdk1.8的关于hashMap put(K,V)方法阅读源码:(1)、跟进第一层方法 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }<1>.该方法将入参作为参数调用了putVal(),方法,同时将key做了hash(key)计算,并作为参数继续执行后续方法,跟进hash(key)说明:h>>>16意思是取出hashCo
2021-07-29 18:55:50 91
原创 log4j源码阅读
首先看下Logger类的直接关系图其中顶级接口 AppenderAttachable 方法如下:抽象父类Category属性方法如下:Logger方法如下:构造方法:会将name传递给父类的Name属性Logger(String name) { super(name); }方法(1):根据name调用LogManager静态方法,进一步从LoggerRepository获取指定name的Loggerstatic public Logger getLogger(Strin
2021-07-28 18:54:56 89
原创 日志实现Log4j配置解读
日志学习心得最近工作中遇到控制台输出日志很难看,就不得以从头开始学习日志相关内容,总结下学习成果;首先是log.porperties文件相关说明其次是单个文件log说明最后是个人一些想法一、log4j.porperties配置说明(1)、首先是logger(记录)就功能性来书System.out.println()与logger一样,都是自定义输出信息便于工程师排查问题。tomcat输出红色日志是由于它定义的日志级别导致的,err输出信息颜色就是红色。logger部分主要是获取要记录日志
2021-07-27 15:09:09 229
原创 运行时反射复合对象方法记录Reflect
提要:工作中需要做Junit测试报告给客户,后端增加方法需要覆盖到,因此需要前端业务数据做分支测试以便覆盖相关功能。业务复杂、数据类型复杂,需要大量的table数据和控制分支数据。业务对象复杂,对象属性多为其他类型对象或者对象数组,以及基本类型数据。编写号junit类后构建传入对象要疯了的感觉。大片大片的对象数组,数组套数组而且数量比较大。思路:首先考虑到的是序列化整个入参对象到本地,然后直接将该对象引入到junit中进行测试。比较省时省力(懒惰似乎是程序员的优秀品质),但项目中几近全部类并没有实现
2021-04-29 18:38:03 138
原创 maven dependency problem 问题
Maven Dependency错误——下载失败问题解决方案问题描述:The container ‘Maven Dependencies’ references non existing library ‘groupid/{groupid}/groupid/{artifactid}-${version}.jar’解决方案:上面问题往往是在下载依赖过程中网络出现问题导致的。此时我们本机已经开始下载依赖代码,但是下载失败,本机仓库中会在MAVENrepo/{MAVEN_repo}/MAVENrepo/
2020-12-19 00:21:58 2767 1
原创 redis做session共享
说明:nginx做服务集群后采用轮询或者权重方式访问服务,采用redis做session共享(redis避免单点故障应该做也采用集群,并做相互备份)环境:windows笔记本安装vmware,xshell,虚拟机安装ubuntuserver服务器系统,开启ssh,加装docker后拉取tomcat基础镜像,redis基础镜像,nginx基础镜像.步骤:系统安好后xhell连接ubuntuserver,利用基础镜像运行nginx容器,vmware宿主机尝试访问nginx,成功后继续运行redis容器,
2020-12-17 11:02:50 163
原创 win10安装VmWare 与Oracle VM virturlBos 网络冲突
问题描述:开始只是用Vmware 时候网络正常,由于windows安装系统定制docker导致无法使用VmWare,就改用docker Tools安装(大概这个名字吧),安装并不顺利,安装后会默认安装OracleVm的虚拟机,头次安装始终无法启动虚拟机导致docker无法使用,查了注册表和虚拟化状态均无问题.第二次安装偶然发现提示要重启后才能安装.重启后就可以使用了.////问题使用oracle虚拟机后重新启动Vmware始终无法连接网络.////百度发现要关闭oracle虚拟机才能连接网络.tips:可
2020-12-04 18:43:35 415
原创 tomcat启动后项目首页无法访问,tomcat无法访问
问题描述:1.eclipse中启动项目正常,启动过程无异常,首页提示如下2,查看jvm线程启动.并且可以访问durid数据源servlet和部分webservice接口,并且控制台有调用输出反应遇到过几次这种情况,尚不明白原因待续…...
2020-07-07 10:04:27 461
原创 java项目异常处理设计
项目结构异常设计公司项目,项目分三层使用ssi(struts2.spring.ibatis),种种原因异常处理比较模糊,目前编程人员对异常处理没有概念,统一梳理以作记录.xxxDao–interface–throws ExceptionxxxBo–interface–throws ExceptionxxxBoImpl–class–try()catch{}–throws ExceptionxxxAction–class–try()catch{}/throws Exception1.1 x.
2020-07-02 15:15:53 497
原创 分页
mysqlSELECT <include refid="VoucherInfo.columns"/> FROM ( SELECT m.*, (@rownum:=@rownum+1) as rnum FROM (SELECT DISTINCT <include refid="VoucherInfo.columnsForPage"/> FROM VOUCHER_INFO A, VOUCHEmysqlR_I
2020-06-23 15:40:51 123
原创 jdk1.7和tomcat7切换为由jndi加载druid数据源
我是个勤劳的搬运工:最近写项目时总是提示数据库连接失败,closed.差了些信息说是连接池用光了,重启项目好用.当前模块运用了大量的反射方法,并且对数据库的访问量也不小.就有可能出现未释放链接导致连接池用光.在数据库中也发现了大量sleep线程,有可能是没释放导致的.重启只能是再建链接,而数据库方面只能kill掉sleep的无用线程.得到的一种解决方式是:在数据源中配置超时自动释放并在日志中排查再数据库标签中添加 <Resource delegate="true" name
2020-06-22 17:41:32 374
原创 git上下载vue-demo示例并在本地运行
一 准备二 本地安装git三 下载四 运行一:首先要确保你本地已经能用脚手架创建项目1.安装node.js2.安装webpack3.安装npm4.安装cnpm5.全局安装npm install vue-cli -g二:git要安装好,新建文件夹右键要有Git Bash Here字样,这说明你能够从github上面下载项目三:1.选中自己心仪的项目2.本地新建文件夹右键,Git Bash Here 调用命令窗口,输入命令2.1 首先输入如下命令: git conf.
2020-06-17 16:06:49 1417
原创 java调用wsdl文档
调用wsdl一般有三种方法:java类中,代码拼写请求体,需要对soap有些了解(我不会)前端js代码调用直接拼数据发送请求Service结合QName利用wsimport生成的代码来调用我用第三种方法,方便快捷也容易掌握,只讲使用不讲原理首先有一个wsdl描述文档:图片中红框部分位wsdl的位置.首先cmd到本地jdk的bin目录wsimport -s ./ http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx?
2020-06-17 09:48:43 2979 1
原创 公司框架连接app端和web端
公司采用webservice+soap技术连通了web项目与app项目.这样使得调试app项目变得很方便,业务逻辑全部放在web上,app管理用户审批查阅等功能.app采用mui+springboot前后端可分离可不分离.主讲测试方法:web接口方法,引包别引错了.@WebService(name = "AppWebService", targetNamespace = "http://AppWebinterfaceImp.appWebService.com/")@SOAPBinding(style
2020-06-16 11:37:48 313
原创 关于薛定谔的猫?
问题:非零即一的问题结果是已当前状态为参数的回掉函数处理的结果.处理过程即为函数过程.求该函数?另:在有限时间内的二义性问题结果是肯定的,如何获得正确的结果?
2020-06-13 07:32:21 143
原创 关于用ServletInputStream()输入流读取图片
问题描述最近遇到需要用到上传图片到服务器上,学习了一下原生servlet中的form上传图片保存到指定目录的情况思路:前端提交–servlet获取inputstream–输出到本地获取输入流后输出到本地一直打不开提示损坏/0kb.从网上看到有说需要apache的两个包io和fileupload包.我想的是不借助第三方工具包处理(tomcat也是第三方呵呵,纯的应该是利用socket吧)项目结构-如图所示:并未使用其余组件,创建了一个动态java项目即可问题原因网上查到一片文章,大概..
2020-06-08 12:43:38 5146 4
原创 学习中遇到的异常处理跨域问题Access-Control-Allow-Origin
引言:今天再用xmlhttprequest像后端异步传值时出现异常Access to XMLHttpRequest at 'http://localhost:18080/stream' from origin 'http://127.0.0.1:8020' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Or
2020-06-06 16:07:16 246
原创 ubuntu安装redis后java连接redis
redis耍耍:windows安装redislinux安装redisjava连接redis1.自行百度2.自行百度3.eclipse新建测试项目,用maven吧(自行百度),依赖如下 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <...
2020-05-27 15:09:25 291
原创 重置超链接href
需求说明:原需求:查询需要操作的发票列表,开具一张发票后不返回初始状态,要保留在查询状态中分析:即将查询条件一并传入后台,做完发票开具后,根据传入条件查询返回数据前端属于公司封装后的ui界面,table按钮为超链接点击后get请求向后台传递数据,查询条件为form表单处理思路:最方便为将上方查询表单一并传向后端,后端已做好form封装等功能,简单快捷,超链接href置为javascript:void(0),循环绑定点击事件问题:超链接get请求没法传form,不想改动太多,太费事(懒)保留
2020-05-19 16:54:04 301
apache-tomcat-10.0.0+lib.zip
2020-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人