![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
WGeeker
这个作者很懒,什么都没留下…
展开
-
【Java】对equals、hashCode和==的理解
equalsequals比较两个对象的内容是否相等,准确的说是用户或者需求认为两个对象相等两个对象就相等,比如下面两个类:public class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; }原创 2020-07-14 11:10:35 · 210 阅读 · 1 评论 -
【CodeWars】Path Finder #2: shortest path
题意题目链接:https://www.codewars.com/kata/path-finder-number-2-shortest-pathTaskYou are at position [0, 0] in maze NxN and you can only move in one of the four cardinal directions (i.e. North, East, S...原创 2019-06-09 13:28:37 · 533 阅读 · 0 评论 -
【LeetCode】1081. Smallest Subsequence of Distinct Characters
题目Return the lexicographically smallest subsequence of text that contains all the distinct characters of text exactly once.Example 1:Input: "cdadabcc"Output: "adbc"Example 2:Input: "abcd"Outp...原创 2019-06-20 20:43:05 · 880 阅读 · 0 评论 -
【面试题】有序数组截断、交换后的查找算法
题目将一段有序数组从中间某个位置截断,分成两部分,比如1,2,3,4,5,6,7,8从4的位置截断成两部分1,2,3,4和5,6,7,8,然后交换这两部分的顺序变成5,6,7,8,1,2,3,4,写成对变换后的数组的查找算法,如果查找成功则返回在数组中的索引(变换后),查找失败则返回-1分析这道题直接for循环遍历可以完成,但这是一道面试题,那就要考虑尽可能降低算法的时间复杂度,所以考虑一下...原创 2019-06-28 21:14:54 · 1506 阅读 · 1 评论 -
【LeetCode】1105. Filling Bookcase Shelves(填充书架)
题目附近的家居城促销,你买回了一直心仪的可调节书架,打算把自己的书都整理到新的书架上。你把要摆放的书 books 都整理好,叠成一摞:从上往下,第 i 本书的厚度为 books[i][0],高度为 books[i][1]。按顺序 将这些书摆放到总宽度为 shelf_width 的书架上。先选几本书放在书架上(它们的厚度之和小于等于书架的宽度 shelf_width),然后再建一层书架。重复...原创 2019-07-14 10:29:49 · 1314 阅读 · 0 评论 -
【LeetCode】1104. Path In Zigzag Labelled Binary Tree
题目In an infinite binary tree where every node has two children, the nodes are labelled in row order.In the odd numbered rows (ie., the first, third, fifth,…), the labelling is left to right, while ...原创 2019-06-30 13:53:25 · 476 阅读 · 0 评论 -
【JVM】while程序的字节码分析
while程序的字节码分析首先来看两个最简单的while程序,不包含任何变量:程序1:public class Test { public static void main(String[] args) { while(true) { } }}字节码指令:public class com.wangyao2221.jvm.test.T...原创 2019-07-17 20:42:30 · 245 阅读 · 0 评论 -
【Java】对Java函数式接口(Functional Interface)的理解
函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 lambda 表达式。Lambda 表达式和方法引用(实际上也可认为是Lambda表达式)上。如定义了一个函数式接口如下:@FunctionalInterfaceinterface GreetingService { void sa...原创 2019-07-23 08:43:44 · 633 阅读 · 1 评论 -
【LeetCode】1114. Print in Order(多线程:按序打印)
LeetCode新出了一类多线程的题目,主要考察的是对编程语言中多线程的用法以及多线程的算法,目前只有四题,这篇博客是对第一个1114这个多线程题目的分析。题目Suppose we have a class:public class Foo { public void first() { print("first"); } public void second() { print...原创 2019-07-31 21:37:00 · 1057 阅读 · 3 评论 -
【CodeWars】Square into Squares. Protect trees!
1.题意这题的意思是给定一个数字n,在经过decompose(n)处理之后得到一个一组数字,这组数字的平方和要等于n^2,这组数中最大值要小于n(如果可以等于n的话直接返回n就是了),并且如果存在多组解需要取最大值最大的那组解。就像题目中的例子说的那样:Examplesdecompose(11) must return [1,2,4,10]. Note that there are act...原创 2019-05-25 11:03:17 · 1001 阅读 · 0 评论 -
【CodeWars】Human readable duration format
1.题意题目意思很简单,就是给定一个秒数seconds,计算这个seconds的year、day、hour、minute、second,以"1year, 2 days, 1 hour, 1 minute and 2 seconds"这样形式的字符串返回,其中数值为0 的部分不显示,最后一个数值用"and"拼接,如果这个0秒则返回"now"2.代码一开始想的是算出这些值,然后用if else来...原创 2019-05-27 18:31:24 · 858 阅读 · 0 评论 -
【CodeWars】Ones and Zeros
1.题意题目的意思是给定一个整型数组,数组的每个元素只能取0或1,将数组所有元素按序组成的二进制串转换成十进制的数值2. 代码代码很简单,按照二进制计算的思路来写就行,假设返回的值是sum,初始化为0,从第一位开始,进行sum = sum * 2,然后再加上当前值,直到算完最后一位,我这里使用位运算,事实上和前面是一样的,只是更贴合二进制计算的本质import java.util.List...原创 2019-05-27 18:48:46 · 260 阅读 · 0 评论 -
【Java】JAVA IO中的设计模式
在java语言 I/O库的设计中,使用了两个结构模式,即装饰模式和适配器模式。 在任何一种计算机语言中,输入/输出都是一个很重要的部分。与一般的计算机语言相比,java将输入/输出的功能和使用范畴做了很大的扩充。因此输入输出在java语言中占有极为重要的位置。java语言采用流的机制来实现输入/输出。所谓流,就是数据的有序排列,流可以是从某个源(称为流源,或者 Source of St转载 2017-09-02 16:40:28 · 746 阅读 · 0 评论 -
【算法】无向图中的环
无向图中的环判断一个具有n个结点m条边的无向图中是否包含环,如果包含则输出其中一个环,要求时间复杂度为O(m+n)。可以根据对图的深度优先算法(DSF)拓展来求解此题。主要过程如下:用数组VST[]记录图中访问过的结点(如 VST[i] 表示第i个结点已经被访问)用PRE[]记录当前结点的父结点的位置(如 PRE[i]=j 表示i个结点的父结点的位置是j)通过DFS来搜索图中的结点,当搜...原创 2018-10-29 20:02:47 · 6475 阅读 · 1 评论 -
【Java】VO、DTO、DO、PO的区别
上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章开始,笔者将会结合自己的实际经验,谈及领域驱动设计的应用。本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: VO(View Object):视图对象,用于展示层,它的作用...转载 2019-02-08 10:31:21 · 722 阅读 · 0 评论 -
【Java】Java IO之字节流与字符流
Java IO(一) 字节流与字符流在日常写代码中,用到文件读取时会看到各种XXXInputStream、XXXOutputStream类,Java的基本IO流名字命名都是这样一种形式,以至于很容易将IO类混淆,很难记住其中的区别,笔者将对Java IO中的类进行区别分析。首先从字节流和字符流的区别开始讲起。字节流和字符流的区别字节流是用于读写字节数据的(比如图像、视频数据)字符流...原创 2019-02-26 23:02:19 · 192 阅读 · 0 评论 -
【Spring】java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
Spring无法找到某些类的问题在使用Spring我们经常会遇到某些外部引用的类无法找到或无法加载的问题,特别是使用依赖注入时遇到此类问题特别头痛,我在此列出几个可能的情况,希望能帮到遇到此类问题的人项目中没有引入响应的jar包解决办法:根据报错信息确定缺少哪些包,搜索下载对应包导入并添加为依赖导入了jar包但是运行时却仍然找不到对应类(笔者在使用IDEA时遇到此问题,不知道在e...原创 2019-03-11 22:07:03 · 1270 阅读 · 1 评论 -
【CodeWars】Counting Duplicates
题意题目链接:https://www.codewars.com/kata/counting-duplicates/train/java/5cf118cee10216001acc1c83题目意思很简单,就是求出给定字符串中出现次数最多的字符出现的次数,如果是字母则大小写,思路也比较简单,有人使用Map来记录字符出现的次数去实现,我的做法是定义一个大小为ASCII最大值(127)的数组,以每个...原创 2019-06-02 20:21:50 · 768 阅读 · 0 评论 -
【CodeWars】int32 to IPv4
题意题目链接:https://www.codewars.com/kata/int32-to-ipv4/train/java/5cebc1b2c6c7fc0022674279题目意思是将一个长整型的的数字转换成ipv4,比如2149583361的二进制表示是10000000001000000000101000000001,而ipv4是每个点是之间的数值大小取值是0~255,也就是二进制的八位...原创 2019-06-02 20:54:32 · 362 阅读 · 0 评论 -
【LeetCode】1010. Pairs of Songs With Total Durations Divisible by 60
题目https://leetcode.com/problems/pairs-of-songs-with-total-durations-divisible-by-60/In a list of songs, the i-th song has a duration of time[i] seconds. Return the number of pairs of songs for whi...原创 2019-06-18 22:30:45 · 343 阅读 · 0 评论 -
【Java】浅析VO、DTO、DO、PO的概念、区别和用处
上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章开始,笔者将会结合自己的实际经验,谈及领域驱动设计的应用。本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页转载 2017-09-01 21:12:32 · 458 阅读 · 0 评论