![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java SE
希望2017
博客内容涉及GO、Java、MySQL、软件开发、数据结构与算法等
展开
-
Java基础|HashCode()与identityHashCode()
这两个方法都是用于计算标识哈希码,不过性能不一样,HashCode()性能好一些,通常使用的是这个方法,不过HashCode()与identityHashCode()计算出来的标识哈希码值有时候是不一样的,这取决于HashCode()是否有被重写,identityHashCode()是根据Object类hashCode()方法来计算hash值的,所以无论是否重写HashCode(),值都是不会变的。下面一个小例子就可以体现出来。...原创 2022-08-31 16:31:18 · 390 阅读 · 0 评论 -
JVM与JMM的关系
缓存这东西有利有弊,利就是速度快,省时省力,弊就是当原始数据改变时,如果不采取相关措施,会造成缓存中存了个假数据,在线程并发时这种情况更常见,这个问题就是常说缓存不一致性的问题,很难受,需要想办法解决。引入一个协议吧,就是一组规定,让计算机听从这些规定,避免造成不一致的情况。在JVM中如果不做相关的规定,也会出现如此的情况,毕竟jvm中也有类似的缓存结构存在,存在缓存,存在并发,就存在缓存不一致性的问题,那么就需要引入一些列规定去约束Java虚拟机的运行,而这一系列的规则就是JMM,即Java内存模型。..原创 2022-08-30 11:17:35 · 274 阅读 · 0 评论 -
Java基础|Java并发相关api
操作线程有两个地方,一个是父类object中定义的wait()等方法,另一个是Thread类中定义的相关方法。start():重启当前线程;调用当前线程的run()run():通常需要重写Thread类中的方法,将创建的线程要执行的操作声明再此方法中这个方法开发者很少调用,因为这是线程的方法的容器,直接调用只是普通的调用方法而已,不能开启新线程,开启新线程需要调用start()这个方法。getName():获取当前线程的名字setName():设置当前线程的名字。...原创 2022-08-29 17:03:20 · 308 阅读 · 0 评论 -
Java SE|基于Socket的TCP编程流程练习
客户端四个基本步骤:1.创建Socket2.打开 连接到Socket的 输入流/出流:3.按照协议对Socket进行 读/写 操纵4.关闭Socket:服务器端四个基本步骤:1.调用ServerSocket(int prot):2.调用accept():3.调用该Socket类对象的getOutputStream和getInputStream():4.关闭ServerSocket和Socket对象:练习代码如下: @Test ...原创 2021-12-05 14:33:00 · 809 阅读 · 0 评论 -
Java SE|获取 文本 上 每个 字符 出现的 次数
涉及IO流中的读取文本、Map中的遍历代码如下: @Test public void testReader2() { File file = new File("tt.txt"); int startTime = (int) System.currentTimeMillis(); BufferedReader br = null; try { FileReader fr = new Fi原创 2021-11-30 18:27:04 · 162 阅读 · 0 评论 -
Jave SE|输出所有文件名称
题目:输出制定目录所有文件名称,包括子文件目录中的文件keywords:递归、File方法 @Test public void show2() throws IOException { File file = new File("D:\\Javacode\\IDEAcode\\day08"); File[] list = file.listFiles(); search(list);//递归,不是全部铺开,而是对一个已经展开的点,不断原创 2021-11-28 23:12:56 · 210 阅读 · 0 评论 -
Java SE| 集合小练习
1.定义一个 Employee 类。该类包含:private 成员变量 name,age,birthday ,其中 birthday 为MyDate 类的对象;并为每一个属性定义getter, setter 方法;并重写toString 方法输出 name, age, birthdayMyDate类包含private成员变量 year,month,day ;并为每一个属性定义 getter, setter方法;创建该类的5 个对象,并把这些对象放入 TreeSet 集合中( 下一章:Tree原创 2021-11-18 13:45:46 · 199 阅读 · 0 评论 -
Java SE|获取两个字符串中最大相同子串
该题目特点:循环语句嵌套技巧:从最内循环往外写/* 获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodef";str2 = "cvhellobnm"; 提示:将短的那个串进行长度依次递减的子串与较长的串比较。 1.短串从fulllength到1逐渐丢到长串的.contains里面去找 2.for语句循环嵌套 */public class StringTest4 { public static boolean g原创 2021-11-10 13:51:49 · 251 阅读 · 0 评论 -
Java SE|获取一个字符串在另一个字符串中出现的次数
/* 获取一个字符串在另一个字符串中出现的次数。 比如:获取“ ab 在 abkkcadkabkebfkabkskab ” 中 出现的次数 总:使用for循环不断的执行indexOf方法,当达到最后一位时,break(if语句判断); 1.for(;;)内,用indexof获得下标,如果存在,赋予变量pIndex,计数+1,index = pIndex + 1;不存在,break; */public class StringTest3 { public st.原创 2021-11-09 11:27:40 · 411 阅读 · 0 评论 -
Java SE|字符串部分反转
/* 将一个字符串进行反转。将字符串中指定部分进行 反转 。比如 ab cdef g 反 转为 ab fedc g 1.方法参数列表:String Str,int a,int b; 2.把Str打散成数组newChar,把a到b部分倒叙遍历成新数组reNewChar; 3.遍历0到a-1,输出新数组firstChar;遍历b+1到char[].length-1,输出新数组lastChar[]; 4.将firstChar[]、reNewChar、lastCha.原创 2021-11-09 09:57:21 · 361 阅读 · 0 评论