自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA中是值传递还是引用传递

1.答案:JAVA中只有值传递,没有引用传递。2.什么是值传递:传递进方法中的数据(基本类型或者非基本类型)先求值,然后复制一份,方法内使用的都是复制后的那份数据。通常对于基本类型复制的是值,对于对象一般是对象地址(这种叫共享对象传递,是值传递的特殊情况)。3.什么是引用传递:传递方法的数据就是原来的数据,直接使用,不进行复制。 值传递 共享对象传递(值传递) 引用传递 是否复制 是 是 否 是否有可能修改原来对象的值 否 是 是.

2020-12-05 16:22:24 176

原创 Spring Cloud Netflix 组件使用(二): Spring Cloud Feign

关于feign:feign是一个伪RPC远程调用的组件,默认集成了ribbon。之前用 RestTemplate 跟 ribbon 完成远程调用跟负载均衡的事,现在用默认集成了ribbion的feign完成。用 RestTemplate 时 使用不同的调用地址,用feign时使用不同的接口对象与接口内的方法 匹配不同的服务使用:1.pom文件中引用依赖2.application.properties 配置文件中配置服务提供地址3.创建一个接口,标注@FeignClient注解,value写配

2020-07-25 08:05:08 221

原创 Spring Cloud Netflix 组件使用(一): Spring Cloud Ribbon

关于ribbon:ribbon是一个客户端负载均衡组件,就是同一个服务,有多个地址可以调用,选哪一个的过程。说是客户端,是因为在客户端(A调用B服务,A是客户端,B是服务端)进行负载均衡算法,nigix就是服务端负载均衡使用:1.首先是个Spring boot项目,pom文件中引入依赖2.配置文件中配置服务提供地址3.ribbon有两种使用方式(1).直接在 RestTemplate 的注入bean上标记 @LoadBalanced 注解,使用 RestTemplate 调用远程地址时就会自

2020-07-25 07:26:44 204

原创 java常用软件默认端口号

tomcat8080mysql3306oracle1521redis6379es9200zookeeper2181nacos8848kafka9092rabbitMQ5672rocketMQ9876

2019-11-27 10:21:05 1782

原创 过滤器处理post请求或者get请求编码

处理post请求编码问题非常简单 一句话 request.setCharacterEncoding(“UTF-8”); 就解决了处理get请求,这个需要 new String(request.getParameter(“xxx”).getBytes(“ISO8859-1”),“UTF-8”) 在构造方法里处理 需要先获取参数执行 request.getParameter(“XXX”) 方法,所...

2018-12-20 11:16:12 1270

原创 HashSet与LinkedHashSet源码分析

刚看过HashMap的源码,再看HashSet的源码,发现HashSet简直太不要脸了,底层就封装了一个HashMap,然后各种方法就使用HashMap的方法,就连遍历都是HashMap实现的。还要挂着set的名。也是醉了。HashSet只使用了HashMap的Key,HashMap的所有的Value统统填充一个常量Object对象。所以HashMap的Key拥有的特性,HashSet都具有,...

2018-12-11 16:20:16 147

原创 LinkedHashMap是如何实现按照插入顺序有序输出的-addBefore()方法

LinkedHashMap是HashMap的子类,很多方法都是继承自父类,重要的区别就是内部类中多了两个entry,一个记录前方entry,一个记录后方entry,这样的双向链表结构保证了插入顺序的有序。总得来说,LinkedHashMap底层是数组加单项链表加双向链表。挺神奇的,数组加单向链表就是HashMap的结构,记录数据用,双向链表,存储插入顺序用。然后LInkedHashMap重写了...

2018-12-11 15:19:28 10034

原创 HashMap转移数据的过程

确定需要扩容之后,先计算原来数组的长度,如果已经等于最大值了那就不可能再扩容了,直接返回。如果不是,创新一个新的新长度的数组。然后执行转移方法。转移方法:for循环遍历原数组,遍历每一个entry,首先保存entry中的下一个entry。(下一次需要循环的)。判断是否需要重新计算hash值,如果需要就重新计算。根据hash和新数组的长度算出新索引位置,将新数组上的数据保存到正在循环的entr...

2018-12-07 15:06:33 3256

原创 HashMap的roundUpToPowerOf2(int number)源码解读

这个方法是将你希望的数组长度输入,经过计算返回一个数组长度。如果超过了最大值,即2的30此幂,将设置成最大值,如果这个数的二进制是零的话返回1,即输入0返回1.如果这个数的二进制是1000(未知0的个数)形式,即2的整数次幂,那么将返回此数,否则返回此数变成二进制只取最高位为一剩下全部变成零的数并且乘以二的数。即如果此数是在某连续的2的整数次幂之间,返回此数的右侧的2的整数次幂,如果正好处...

2018-12-07 10:41:12 1178 2

原创 HashMap是如何实现put与get方法的以及到底什么时候添加数据才扩容

HashMap就是数组加链表,不同的hash放到不同的索引上,相同的hash数据放到同一个索引处,并将原索引处的数据放到新加入数据的成员变量entry上。HashMap这个类,有个内部类叫做Entry<K,V>,存储了 key,value,hash,Entry<K,V> entry,就是key值,value值,hash值,跟下一个entry对象。然后

2018-12-06 14:28:51 1625

原创 LinkedList根据索引查找为什么慢

比如说集合size=100,你要取40,根据源码,100>>1=50,40<50,需要从前往后循环,循环40遍取出node.item.如果正好取中间那位或者排后面的,则从后往前循环,直到找到该元素。简直不要太麻烦。LinkedList用做在任意索引处添加元素非常方便,根据源码显示,只需要将改变插入处前后元素跟插入元素即可。非常方便。...

2018-12-04 17:06:27 2412 3

原创 ArrayList源码之添加方法详解

ArrayList底层是动态数组,最重要的就是这个grow方法,首先给一个数值作为数组范围,然后在数组原来的基础上增大一半的范围,如果这个增大的数小于增大一半的范围,那就是增大一般的范围,就是至少增大一半,第一次添加元素直接扩大至10,最大为Integer.MAX_VALUE-8,(防止频繁复制数组),然后复制数组,然后在存储元素最后一位的后一位赋值增加的值。在指定索引出添加,...

2018-12-04 10:52:11 407

原创 java中三种长度方式及便利时是否消耗过多资源

1.数组.length纯属性,直接读取该数组的_length字段,遍历时频繁读取并不会消耗过多资源。2.集合.size()方法,集合的底层就是数组,size()方法返回size成员变量,使用size记录数组的实际长度,所以遍历时频繁读取并不会消耗过多资源。同数组。3.字符串.length()方法,字符串的底层是Char【】。length()方法是返回Char[]数组.length,没有成...

2018-12-04 10:16:52 511

原创 ArrayList中MAX_ARRAY_SIZE为什么是 Integer.MAX_VALUE - 8 以及数组在java中到底是什么数据类型

数组在java里是一种特殊类型,既不是基本数据类型(开玩笑,当然不是)也不是引用数据类型。有别于普通的“类的实例”对象,java里数组不是类,所以也就没有对应的class文件,数组类型是由jvm从元素类型合成出来的;在jvm中获取数组的长度是用arraylength这个专门的字节码指令的;在数组的对象头里有一个_length字段,记录数组长度,只需要去读_length字段就可以了。所以Ar...

2018-12-04 09:32:45 7285 12

原创 springmvc图片上传与回显

上传时 前台两个要求 type=file form表单enctype=“multipart/form-data”配置文件里 需要配置一个文件解析器action形参需要绑定multipartFile 参数保存到数据库的时候 只保存uuid随机名字加 点 加 扩展名就行回显的时候 直接显示读取盘符里的文件路径加上对象点图片名称就行 (需要配置图片盘符可访问)...

2018-10-15 08:34:01 1625

原创 oracle数据库sql优化与常见错误与知识点

SQL优化1、使用具体列名代替 * 号,根据执行计划,星号最好还是解析成具体列。2、查询条件是从右到左解析,所以把最重要的条件放到最后面,简化查询。3、能使用关联查询不要使用子查询,因为子查询最后根据执行计划还是解析成关联查询。4、尽量不要使用集合运算,集合数越多,效率越低。union/union all/intersect/minus。常见错误1、含有null的表达式永远为null。...

2018-09-27 16:49:54 159

原创 如何在远程虚拟机上发包

所需软件:VMWare 虚拟机,CentOS镜像系统,SSHSecureShellClient,jdk1.7,mysql数据库,tomcat首先安装VWare虚拟机,在虚拟机上装上linux系统,使用SSHSecrueShellClient远程链接上虚拟机,将本地的jdk,mysql,tomcat发到linux上并删除原来的然后安装,在linux上开启远程使用root授权,开启端口3306跟80...

2018-09-19 10:10:41 666

原创 实现用户登录与用户注册的思路

正常的主页面应该有两个功能,一个是用户登录,一个是用户注册。用户注册比较来说简单一点,主页面单击用户注册按钮,直接定位到注册页面,填写用户名和密码等等,单击提交,到后台action页面进行逻辑判断,查询这个用户名在数据库是否已经存在。 两种情况,如果不存在,直接保存,重定向到登录页面。 如果存在,直接抛异常,自定义异常信息用户已存在,在action中进行捕获,并且将错误信息放入到reqeu...

2018-09-17 10:19:23 16573 1

原创 redis学习笔记

互联网三高(Nosql优点) 1、高并发 海量客户同时请求应用服务器 2、高负载 对海量数据高效率的存储和访问 3、高可用高扩展 通过添加服务器节点实现增大数据容量 并且自动存取到新的数据库集群(用空间换时间) 比如一个服务窗口100人排队 集群就是再开三个服务窗口 每个队伍就变成了25人 减轻了每个服务器压力关系型数据库 表跟表之间有关联 这就造成了增删都要考虑其...

2018-09-14 10:40:43 120

原创 ssh中Spring配置文件applicationContext.xml

Spring应该配啥1、可以帮strtus生成action,然后起个名字,struts那里的配置再使用这个名字就行了,再加上配置让spring帮助生成action,不多说。 2、可以帮hibernate配的就多了去了,简单来说,陪完spring就不用配hibernate.cfg.xml了,可以帮hibernate生成sessionFactory对象,操作数据库,至关重要。先在外部配置数据库四...

2018-09-13 16:13:41 535

原创 js通用下拉写法

function loadSelect(dictTypeCode,positionId,selectName,selectId){ var $select = $("<select name="+selectName+" ></select>"); $select.append("<option value=''>---请选择---</o...

2018-09-11 08:42:45 1260

原创 ssh学习笔记

关于使用struts2上传文件 1.前台jsp 表单提交必须使用post方式 mehtod=“post” 2.enctype=“multipart/form-data” 3.使用 input type=”file” name=photo 后台接收 1.private File photo;会将上传的文件直接封装到file对象中去 极其简单 生成 getset方法 2.phot...

2018-09-10 14:30:36 113

原创 SpringAOP图解及通知类别区分

简单来说就是 有两个类,一个是原来的类,一个是你写增强方法的类。然后配置里面,配置三个东西, 这两个类,加上增强方法类中具体方法,总结一句话: 通过通知位置的标签选择属于增强方法类中的具体的增强方法 放在原来类的不同位置,形成aop。...

2018-09-07 15:56:19 532

转载 SVN命令之清理命令(clean up)的功能及使用技巧

SVN的清理命令,我们经常会使用。这个命令的原理,我们还是有必要深究一下的。 当SVN改变你的工作拷贝(或是.svn中的任何信息),它会尽可能的小心。在进行任何修改操作时,SVN都会把日志记录到日志文件中,然后执行log文件中的命令,并且执行过程中在工作拷贝的相关部分保存一个锁,防止SVN客户端在变更过程中访问工作拷贝。如果SVN的操作中断了(举个例子:进程被杀死了,机器死掉了), 日...

2018-09-05 17:42:44 18722

原创 java 动态代理关系图解

最好参照其他人的文字,我主要缕清关系,水平有限,欢迎交流指正

2018-08-29 15:16:24 2098

原创 eclipse中实用快捷键(完善中)

Ctrl + 1 自动提示可进行的操作 (自动输出返回值的类型与名称特别好用)Alt + Shift + A 纵向编程 (写sql外面的分号特别好用)Ctrl + Shift + O 自动导包和删除多余包Ctrl + Shift + X 将小写改为大写。Ctrl + Shift + Y 将大写改为小写。有的需要先选中在进行操作。。。未完...

2018-08-28 08:51:25 131

转载 oracle与mysql的Class名称与Url名称

Oracle数据库:驱动程序包名:ojdbc14.jar驱动类的名字:oracle.jdbc.driver.OracleDriverJDBC URL:jdbc:oracle:thin:@dbip:port:databasename说明:驱动程序包名有可能会变MySQL数据库驱动程序包名:mysql-connector-java-3.1.11-bin.jar驱动类的名...

2018-08-28 08:28:16 547

空空如也

空空如也

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

TA关注的人

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