随笔分类 -  Java

Java常见问题
摘要:1、String类是final的,不允许被继承 String类的内部就是维护了一个char数组; 2、构造方法,只需要看两个接受char数组的构造方法 这两个构造方法都用到了,Arrays工具类的copyOf方法,在这两个方法里面都调用了System.arraycopy方法; 因为System.ar 阅读全文
posted @ 2016-08-04 16:36 练子 阅读(2988) 评论(0) 推荐(0)
摘要:Struts2的S2-016漏洞是之前比较重大的漏洞,也是一些老系统的历史遗留问题 此漏洞影响struts2.0-struts2.3的所有版本,可直接导致服务器被远程控制从而引起数据泄漏,影响巨大 漏洞修复总结有4种方式: 1、升级版本 这也是Apache官方给出的建议,把Struts2的版本升级到 阅读全文
posted @ 2016-05-04 11:02 练子 阅读(15269) 评论(1) 推荐(0)
摘要:1、一些定义 值传递:把实际传入参数的值,在内存中赋值一份 引用传递:传入的是实际参数的地址 2、传递基本类型的参数 因为Java是值传递,那就不难理解下面的代码不交换任何值 3、传递引用变量的参数 Java都是通过引用来操作对象的,所有指向对象的变量都是引用,然而,Java不会把引用传递给方法的参 阅读全文
posted @ 2016-04-15 17:21 练子 阅读(634) 评论(0) 推荐(0)
摘要:1、Comparable 如果想让一个类的实例之间可以相互比较的,那么这个类就必须要实现Comparable接口,并且覆盖compareTo()方法 2、Comparator 在某些情况下,你可能不想让这个类具有比较性,在这样的案例中,你可能需要比较类中的某些字段;例如,2个人之间可以比较他们的身高 阅读全文
posted @ 2016-04-13 17:41 练子 阅读(506) 评论(0) 推荐(0)
摘要:1、什么是可变参数 可变参数是JDK1.5的新特性,允许一个方式接受任意数量的参数 2、可变参数是怎么执行的 当可变参数使用时,会在调用的地方创建一个数组,数组长度为实际的参数个数; 然后把参数放入到数组中,最后把数组传递给这个方法 3、什么时候使用可变参数 正如可变参数所定义的那样,可变参数在接受 阅读全文
posted @ 2016-04-13 11:47 练子 阅读(414) 评论(0) 推荐(0)
摘要:一、有四种方式查询数组中是否包含某个值 1、使用List 2、使用Set 3、使用简单的循环 4、使用Arrays.binarySearch(),但这个方法只接受已经排好序的数组 二、计算以上四种方式的时间复杂度 1、测试数组的元素个数分别为:5 , 1000, 10000 Result: Use 阅读全文
posted @ 2016-04-13 11:35 练子 阅读(1719) 评论(0) 推荐(0)
摘要:1、在没有IDE自动补齐的情况下,怎样得到数组的长度?怎样得到字符串的长度? 为什么数组有length属性而String只有length()方法呢? 2、为什么Arrays有length属性? 首先,数组是一个对象容器,保存的是一系列单一类型的值;然后数组被创建,但是长度不能被改变;数组的长度可以当 阅读全文
posted @ 2016-03-28 14:52 练子 阅读(2218) 评论(0) 推荐(0)
摘要:1、来看一段有趣但又让人困惑的代码片段 打印结果:"ab" 2、这段代码真正做了什么呢?来解释一下这个过程 首先,当字符串"ab"被创建时,Java分配内存来存储这个字符串常量;然后,这个字符串常量被赋值给了变量x,x实际上保存的是这个字符串对象的引用地址(内存中的地址);x变量保存了字符串对象的引 阅读全文
posted @ 2016-03-28 14:10 练子 阅读(1498) 评论(0) 推荐(0)
摘要:1、在Java中,创建一个字符串有两种方式 String x = "abc";String y = new String("abc"); 这两种方式有什么区别呢? 2、双引号("")和构造器 第一个案例: String a = "abcd";String b = "abcd";System.out. 阅读全文
posted @ 2016-03-27 17:41 练子 阅读(2675) 评论(0) 推荐(0)
摘要:1、在Java中,String类是不可变类,一个不可变类是一个简单的类,并且这个的实例也不能被修改, 这个类的实例创建的时候初始化所有的信息,并且这些信息不能够被修改 2、字符串常量池 字符串常量池是方法区中一块特殊的存储区域,当创建一个字符串常量的时候,判断该字符串字在符串字符串常量池中是否已经存 阅读全文
posted @ 2016-03-27 17:18 练子 阅读(6066) 评论(0) 推荐(0)
摘要:1、substring()方法做了什么? substring(beginIndex,endIndex)方法返回一个从beginIndex到endIndex-1的字符串 String x = "abcdef"; x = x.substring(1,3); System.out.println(x); 阅读全文
posted @ 2016-03-27 16:25 练子 阅读(1221) 评论(0) 推荐(0)
摘要:声明一个字符串引用变量: String s = "abcd"; s是一个引用变量,指向 堆内存中的字符串常量 "abcd" 再声明一个字符串引用变量: String s2 = s; 把s变量赋值给s2,那么 s 和 s2 两个引用变量同时指向堆内存中的字符串常量 "abcd" 改变字符串: s = 阅读全文
posted @ 2016-03-25 18:30 练子 阅读(218) 评论(0) 推荐(0)
摘要:之前在写的时候没有遇到过这个问题,用惯了eclipse之后突然用Notepad++就出现乱码了 我在编写的时候 指定Noepad++的编码是 UTF-8编码,然后进入命令行,编译的时候就出现了乱码 然后我用UTF-8无BOM编码,虽然能通过编译,但是输出的时候,还是出现了乱码 搜了一下,发现问题在于 阅读全文
posted @ 2016-03-09 22:56 练子 阅读(1408) 评论(0) 推荐(0)