java
却顾所来径
当你老了,回顾一生,就会发觉:什么时候出国读书、什么时候决定做第一份职业、何时选定了对象而恋爱、什么时候结婚,其实都是命运的巨变。只是当时站在三岔路口,眼见风云千樯,你作出抉择的那一日,在日记上,相当的沉闷和平凡,当时还以为是生命中普通的一天。
展开
-
深入理解NIO
BIO:block IO。 有两种阻塞:1、连接时阻塞。2、IO时阻塞。且这两种阻塞都没有设置非阻塞的方法。所以是BIONIO:noblock IO。连接和IO时都有设置为非阻塞的方法。serverSocketChannel.configureBlocking(false)和socketChannel.configureBlocking(false)。所以是NIO。缺点:无法感知哪些socke...原创 2019-11-04 18:22:43 · 230 阅读 · 0 评论 -
统计指定文件夹代码总行数
思路:主要代码框架:main(){ countdir("要统计的文件夹路径");}countdir(A){//统计文件夹A代码行数 //假设A中子文件有:a,b,c,d if(a是文件夹) { //依次判断子文件是文件夹还是java文件,是文件夹就递归直到是 //java文件为止,是Java...原创 2018-10-18 21:41:30 · 985 阅读 · 0 评论 -
Java IO流经典练习题(转载)
转载自:峥嵘lifehttps://blog.csdn.net/wenzhi20102321/article/details/52582705Java IO流经典练习题本文对javaIO流的13道经典的练习题做解答,里面有详细的思路解析,做题时最好养成先写思路在编程的习惯。一.练习的题目(一)在电脑D盘下创建一个文件为HelloWorld.txt文件,判断他是文件...转载 2018-10-20 14:38:03 · 4235 阅读 · 1 评论 -
java自定义注解及获取注解参数
以前不知道注解有什么用,现在学到了框架,发现到处都是注解。所以搞明白注解的原理还是很有必要的。要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotatio...原创 2019-02-09 21:20:05 · 35948 阅读 · 0 评论 -
java queue和stackc常用方法对比
这两个每次时间一久就容易搞混,所以记录一下 queue: stack poll():弹出队首元素 pop():弹出栈顶元素 offer():添加元素 push():添加元素 peek():查看队首元素 peek(...翻译 2019-03-29 20:29:01 · 554 阅读 · 2 评论 -
idea定制模板tomcat插件模板
每次在pom.xml文件中配置tomcat插件,记不住配置,ide又没有提示,所以要去网上找相关配置,这个过程相当麻烦。有没有更简单的办法呢?比如我pom.xml中输入一个“tomcat”字符串,会出来提示之类的?答案是有的,我们能想到,idea开发者也想到了。接下来看具体怎么做:打开settings----输入框输入live-----点击右边“+”选择Template Group...原创 2019-06-09 23:20:54 · 1012 阅读 · 0 评论 -
idea向上/向下插入空行快捷键
idea是2017版的向上插入空行:ctrl+alt+enter向下插入空行:shift+enteridea快捷键用起来真的无力吐槽。。。向上插入和向下插入明明是对称功能,快捷键却风牛马不相及。还是怀念eclipse。...原创 2019-06-07 15:43:40 · 11105 阅读 · 4 评论 -
组合注解和继承注解
(1)@inherited注解修饰的注解@A,@A修饰某个类,则该类的子类也被@A修饰(2)当注解中含有数组属性时,使用{}赋值,各个元素使用逗号分隔。(3)注解的属性可以是另外一个注解。(4)注解的属性可以是另外一个注解的数组。(5)注解的默认属性是value,只有一个value属性时可以不写value=xxx,直接写值即可。(6)注解的属性的默认值使用default来定义。...转载 2019-05-31 15:25:21 · 6501 阅读 · 0 评论 -
hashcode和equals方法
对象的hashcode方法和equals方法如果没有重写都是Object类的方法,因为所有对象都继承自Object。所以我们看看Object类这两个方法的源码:equals方法源码: public boolean equals(Object obj) { return (this == obj); }hashcode方法源码:public na...原创 2019-04-27 23:19:48 · 198 阅读 · 0 评论 -
HashMap底层实现原理及面试问题
①HashMap的工作原理HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存...转载 2019-02-04 00:09:54 · 219 阅读 · 0 评论 -
二叉树后序遍历非递归实现(java)
后序遍历:双栈法,和层次遍历(双队列)很相似,唯一区别在于层次遍历用的是队列,后序遍历用的是栈。public static void posOrderUnRecur1(Node head){ System.out.print("PosOrder:"); if(head != null){ Stack<Node> s1 = new Stack<Node>();...原创 2018-09-29 23:42:48 · 8938 阅读 · 0 评论 -
leetcode 520. 检测大写字母(java)
题目描述:给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。 单词中所有字母都不是大写,比如"leetcode"。 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:...原创 2018-09-09 16:07:27 · 627 阅读 · 0 评论 -
Leetcode 557. 反转字符串中的单词 III(Java)
题目描述:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。代码:class Solution { pu...原创 2018-09-09 14:56:04 · 1417 阅读 · 0 评论 -
leetcode 434. 字符串中的单词数
题目描述:Count the number of segments in a string, where a segment is defined to be a contiguous sequence of non-space characters.Please note that the string does not contain any non-printable charact...原创 2018-09-11 22:12:24 · 471 阅读 · 0 评论 -
leetcode 387. 字符串中的第一个唯一字符
题目描述:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2. 注意事项:您可以假定该字符串只包含小写字母。两种代码:entrySet()和keySet(),最后都能ac,区别:entrySet()方法能一次性获得key和value。ke...原创 2018-09-11 21:01:44 · 324 阅读 · 0 评论 -
leetcode 58. 最后一个单词的长度
题目描述:给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5分析:设置i指向字符串末尾,从后向前遍历,若当前i 指向的字符为空格,继续前移,即执行i--操作,若i最后小于0,即i=-1,说明-1后面的都...原创 2018-09-11 20:04:59 · 171 阅读 · 0 评论 -
leetcode 125. 验证回文串(java)
题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false分析:首先特殊情况分开讨论,s.length()==0,s="...原创 2018-09-11 19:10:15 · 1085 阅读 · 0 评论 -
leetcode 67. 二进制求和
题目描述:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"代码:class Solution { public String addBinar原创 2018-09-11 17:48:47 · 102 阅读 · 0 评论 -
leetcode 345. 反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。代码1:public class Solution { public String reverseVowels(String s) { ...原创 2018-09-11 15:52:21 · 168 阅读 · 0 评论 -
leetcode 788. 旋转数字(java)
题目描述:我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字, 则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方;6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现在我们有一个正整数 N...原创 2018-09-09 17:09:18 · 660 阅读 · 0 评论 -
leetcode 69. x 的平方根(java) (牛顿迭代法解析)
题目描述:实现int sqrt(int x)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。方法一、二分法:很容易想到,所以...原创 2018-09-16 22:29:38 · 1632 阅读 · 2 评论 -
leetcode 709. 转换成小写字母
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。 示例 1:输入: "Hello"输出: "hello"示例 2:输入: "here"输出: "here"示例 3:输入: "LOVELY"输出: "lovely"class Solution { publ原创 2018-09-06 22:31:32 · 208 阅读 · 0 评论 -
leetcode 819. 最常见的单词(java)--leetcode 819. Most Common Word
题目描述:给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。示例:输入: paragraph = "Bob hit a ball, the hit BALL flew fa...原创 2018-09-15 10:57:22 · 680 阅读 · 0 评论 -
BufferedInputStream 比 InputStream快的原因(java)
InputStream:每次从硬盘读入一个字到中转站, 再写入目的文件(硬盘)BufferStream:一次读入n个字节到输入换成区,接着经中转站一个个写入到输出缓冲区,输入缓冲区为空时再次从硬盘读入批量数据,同理输出缓冲区满了以后再批量写入到目的文件(硬盘)。如此使用BufferedStream可以减少访问硬盘的次数,速度大幅提升。 总结:1、节点流:FileInpu...原创 2018-09-30 22:52:45 · 5829 阅读 · 2 评论 -
leetcode 500. 键盘行(java)--500. Keyboard Row
题目描述:给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。 示例1:输入: ["Hello", "Alaska", "Dad", "Peace"]输出: ["Alaska", "Dad"]注意:你可以重复使用键盘上同一字符。 你可以假设输入的字符串将只包含字母。代码:class Solution {原创 2018-09-14 09:50:06 · 388 阅读 · 0 评论 -
leetcode 657. 机器人能否返回原点
题目描述:在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R”...原创 2018-09-07 16:20:20 · 1163 阅读 · 0 评论 -
leetcode 696. 计数二进制子串(java动态规划法)
题目描述:给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它...原创 2018-09-10 21:10:47 · 295 阅读 · 0 评论 -
leetcode 824. 山羊拉丁文
题目描述:给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。我们要将句子转换为 “Goat Latin”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头(a, e, i, o, u),在单词后添加"ma"。 例如,单词"apple"变为"applema"。 如果单词以辅音字母开头(即非元音字母),移除第一个字符...原创 2018-09-10 17:38:50 · 170 阅读 · 0 评论 -
leetcode 383. 赎金信(Ransom Note)--java
题目描述:给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。canConstruct...原创 2018-09-12 22:04:47 · 540 阅读 · 0 评论 -
459. 重复的子字符串(java)
题目描述:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可...原创 2018-09-12 21:29:23 · 756 阅读 · 0 评论 -
leetcode 541. 反转字符串 II
题目描述:给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"要求:该字符串只包含小写的英文字母。 给定字符...原创 2018-09-11 13:22:49 · 425 阅读 · 0 评论