![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java笔记
文章平均质量分 67
夜读春秋
即使庄周梦蝶,亦是好梦一场,尽绵薄之力,留下些许
展开
-
读 | A Philosophy of Software Design
读 A Philosophy of Software Design 笔记原创 2022-10-03 16:04:34 · 618 阅读 · 0 评论 -
搭建 Nexus 私服
个人博客版传送门记得最早进行 web 开发的时候,采用 SSM 架构,一些相关的 jar 包需要自行到官网上搜索下载到本地,然后手动将 jar 引入项目中使用。而今对于依赖的管理已经进步了很多,由构建工具(Maven/Gradle)去自动处理,程序员只需要声明需要什么 Jar,去哪里拿。在企业内部,一般都会搭建一套自己的 Jar 仓库,没错,就是用 Nexus,Nexus 还可以用作 NPM、docker、helm、apt、yum 等的私服,感兴趣可以上官网看看。这里采用 Nexus 2 搭原创 2021-01-07 21:29:59 · 360 阅读 · 0 评论 -
第30题:在从1到n的整数中1出现的次数
github:https://github.com/frank-cq/MyTest第30题:输入一个整数n,从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,1,11和12,1一共出现了5次。 分析 这题写几个数好好观察下就会发现类似于数字的排列组合问题,比如数字2016,从右往左算:当个位为1时,左边可取0~201,即有202种组合方式;原创 2015-08-05 19:24:53 · 782 阅读 · 0 评论 -
LeetCode:Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, which the length is 3. For “原创 2015-08-13 13:24:54 · 364 阅读 · 0 评论 -
适配器模式——设计模式
最近温习设计模式,看了这篇文章,根据自己的理解进行了一些修改,加深一下印象。 背景:菜鸟马上又要去德国出差了,上一次由于不知道德国插座与中国插座不同,带去的电子设备好险没充上电,差点沦为摆设,让他在心仪的小美面前出了洋相。这一次,菜鸟吸取教训,特意去超市采购了一件神器,有了神器在手,再也不担心出洋相了。package adapterPattern;/** * Created by cq on原创 2015-08-16 20:31:59 · 546 阅读 · 0 评论 -
(转)Eclipse快捷键
Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交互位置(同上) Alt+← 前一个编辑的页面 Alt+→ 下一个编辑的页面(当然是针对上转载 2015-08-13 18:31:33 · 400 阅读 · 0 评论 -
(转)20个非常有用的Java程序片段
转自:http://coolshell.cn/articles/889.html1、 字符串有整型的相互转换String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to an int 2、 向文件末尾添加内容BufferedWriter ou转载 2015-07-30 16:09:45 · 861 阅读 · 0 评论 -
第29题:判断一个序列是否是另一个push序列的pop序列
github:https://github.com/frank-cq/MyTest第29题:输入两个整数序列,其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。比如输入的push序列是 1、2、3、4、5,那么4、5、3、2、1 就有可能是一个pop序列,因为可以有如下的push和pop序列:push 1, p原创 2015-07-03 12:35:15 · 949 阅读 · 0 评论 -
第26题:旋转字符串
github:https://github.com/frank-cq/MyTest第26题:定义字符串的旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。要求对长度为n的字符串操作的时间复杂度为O(n),辅助内存为O(1)。 代码 package test026;/** * Created by cq on原创 2015-07-02 09:04:45 · 611 阅读 · 0 评论 -
第28题:求整数的二进制表示中1的个数
github:https://github.com/frank-cq/MyTest第28题:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。 代码 package test028;/** * Created by cq on 2015/6/28. * 第28题:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10, *原创 2015-07-02 09:25:39 · 584 阅读 · 0 评论 -
LeetCode:Two Sum
最近看大牛的博客,有提到LeetCode-OJ,于是也上去凑个热闹。不定期更新我做的题。 Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two原创 2015-08-09 09:25:56 · 439 阅读 · 0 评论 -
LeetCode:Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linke原创 2015-08-09 14:45:10 · 378 阅读 · 0 评论 -
Overlay 方式构建 CAS
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...原创 2018-09-16 13:42:39 · 1741 阅读 · 0 评论 -
闲聊Java里的随机数
现实世界里有随机事件,数字世界里有随机数。随机似乎是一个魔法,充满了谜团。读多了科幻小说,就会妄想世间的一切都是可被计算的,所谓的随机,只是因为一个事件涉及的因素庞杂,以人类目前的认知和分析能力,无法穷究一切因素,所以就称她的发生是随机的。扯远了。。。我们主要是想了解下随机数,一般我们谈到的随机数是指具有随机性的数,即这些随机数组成的序列不具有统计学偏差。第一次使用随机数是大学的一次课程练习,要求写原创 2017-08-11 21:25:24 · 457 阅读 · 0 评论 -
配置eclipse开发floodlight环境
系统:Ubuntu 14.04 JDK:openjdk 1.7.0_85最近想开发floodlight的应用,于是准备用虚拟机安装个开发环境,先装了个Ubuntu12.04,然后按照这位的流程:apt-get -y install build-essential default-jdk ant python-dev eclipse git clone git://github.com/floodl原创 2015-11-16 20:29:11 · 2821 阅读 · 1 评论 -
Java中的静态分派与动态分派
本文是《深入理解Java虚拟机》8.3.2节的读书笔记,理解有误的地方,欢迎指正首先是两个概念:静态类型,即是变量声明时的类型。实际类型,变量实例化时采用的类型。比如我们有这样一段代码class Human {}public class Man extends Human { public static void main(String[] args) { Huma原创 2015-10-07 19:22:18 · 673 阅读 · 0 评论 -
Java的字符串连接符(+)
在Java中字符串是一个常用的东西,而其一个常用的操作是字符串的拼接,Java对此提供了一种非常直观的操作方式——即 + 操作符。 String str0 = "a";String str1 = str0 + "b";如上的程序片段就实现了一个字符串的拼接,可以看到整个描述非常简洁,一目了然。学习Java的时候,这是接触到的第一种拼接字符串的方式,先入为主的印象会让你在以后需要拼接字符串时第一时原创 2015-11-05 22:19:06 · 8817 阅读 · 0 评论 -
JVM内存分配与回收简述
本文是《深入理解Java虚拟机》一书3.6节的学习笔记,因此有些地方直接摘抄书中段落。在此仅描述内存分配与回收的一般过程,不深入特殊情况。理解有误的地方欢迎指正。 在开始之前先介绍相关概念,在《深》书第二章中介绍了Java运行时数据区的划分情况。运行时数据区被划分为5个部分:Java堆、方法区、Java虚拟机栈、本地方法栈、程序计数器。其中Java堆就是专门用来存放对象实例的区域,更具体的原创 2015-09-03 16:32:17 · 684 阅读 · 0 评论 -
LeetCode:Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)). 根据返回值为double,输入为int可知,如果m+n为原创 2015-08-16 16:01:57 · 413 阅读 · 0 评论 -
Java对象——死或生
本文是《深入理解Java虚拟机》3.2节的读书笔记,理解有误的地方欢迎指正如何判断对象是否可以回收,传统的做法是引用计数法: 引用计数算法:给对象添加一个引用计数器,每当一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻引用计数器值为0的对象就是不可能再被使用的。引用计数算法看起来简单明了,但是却存在一个麻烦的问题——即循环引用。假设现在我使用引用计数算法回收对象,有如原创 2015-09-08 16:32:08 · 460 阅读 · 0 评论 -
第27题:跳台阶问题
github:https://github.com/frank-cq/MyTest第27题:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少种跳法。 代码 package test027;/** * Created by cq on 2015/6/28. * 第27题:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少种跳法。 */public clas原创 2015-07-02 09:16:04 · 2034 阅读 · 0 评论 -
第25题:返回字符串中最长数字字符串的长度
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/46593595 github:https://github.com/frank-cq/MyTest第25题:在字符串中找出连续最长的数字串,把这个串的长度返回 代码 package test025;/** * Created by cq on 2015/6/22.原创 2015-06-22 15:20:55 · 767 阅读 · 0 评论 -
第24题:原地逆置单链表
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/46592801 github:https://github.com/frank-cq/MyTest第24题:原地逆置单链表ps:这题是当年数据结构课上的一个课后习题,当时用的就是原地逆置。 代码 package test024;import common.Commo原创 2015-06-22 12:53:46 · 1057 阅读 · 0 评论 -
第11题:求二叉树中节点的最大距离
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44984331 第11题:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义“距离”为两点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。 树的高度是一个重要信息,然后就可以祭出递归大法了。 代码 pac原创 2015-04-10 20:25:37 · 1332 阅读 · 0 评论 -
第7题:判断两个链表是否相交
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44801889插播一下第6题: 腾讯面试题,给你10分钟时间,根据上排给出的十个数,在其下排填出对应的十个数,要求下排每个数都是先前上排那十个数在下排出现的次数。 上排的十个数如下:【0,1,2,3,4,5,6,7,8,9】(PS:既然是一个10分钟的面原创 2015-04-01 08:56:14 · 1638 阅读 · 0 评论 -
第1题:把二叉搜索树转换为一个排序的双向链表
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44494693马上找工作了,准备好好学习下July大神整理的微软面试100题系列,代码使用Java实现(IntelliJ那个黑色主题真是程序员的大爱),顺便就复习一下Java和数据结构。闲话不多说,热腾腾的题和代码端上来。第一题:把二叉搜索树转换为一个排序的双向链表 要原创 2015-03-20 17:13:47 · 781 阅读 · 0 评论 -
第5题:查找最小的K个元素
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44752297第5题:输入n个整数,输出其中最小的K个。(数组) 例如输入1,2,3,4,5,6,7,8 这8个数字,则最小的4个数字为1,2,3,4此处就是排序——冒泡排序、快排、选择排序等,择一进行修改应该就可以了。代码:package test005;/** *原创 2015-03-30 16:01:01 · 1081 阅读 · 0 评论 -
第4题:在二叉树中找出和为某一值的所有路径
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44725559第4题:输入一个整数和一颗二叉树。从树的根节点开始往下访问一直到叶结点所经过的结点形成一条路径。打印出和与输入整数相等的所有路径。 要求:无涉及到树的算法大多采用递归实现,此处很明显需要一个遍历,每一次递归都要把之前已经获得的信息带下去,这样到达符合要求的原创 2015-03-29 11:25:26 · 1206 阅读 · 0 评论 -
第3题:求子数组的最大和
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44653245第3题:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个正数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。 要求:时间复杂度为O(n)从左往右一遍扫描。package test003;/** * Created by cq原创 2015-03-26 17:54:35 · 557 阅读 · 0 评论 -
第2题:设计包含min函数的栈
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44620511第2题:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素 要求:函数min、push、pop的时间复杂度都是O(1)新元素入栈时,将包括自身在内的所有元素中的最小值保存在自身节点的minData中,这样不管出栈/入栈,栈顶都将永远保存当前所有原创 2015-03-25 13:28:11 · 1177 阅读 · 0 评论 -
Java中的移位操作——Java编程思想笔记
Java中的移位操作及移位进行乘除法的简单分析原创 2014-10-10 20:05:32 · 2494 阅读 · 0 评论 -
第15题:输入一棵二叉树,将该树转换为它的镜像
欢迎转载,转载请注明出处:http://blog.csdn.net/alading2009/article/details/45114413 第15题:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。* 要求: 使用递归和循环两种方法完成树的镜像转换。 代码 package test015;import common.BTNode;imp原创 2015-04-18 16:38:22 · 1365 阅读 · 0 评论 -
第17题:返回字符串中第一个只出现一次的字符
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/45193239 第17题:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 这题解法确实很巧妙,看了答案,发现有一点小问题。文档整理的答案中,在记录了字符串中各字符出现的次数以后,接着是按ASCII码值从小到大来搜索大小为256的数组,原创 2015-04-22 11:56:18 · 1311 阅读 · 0 评论 -
第9题:判断整数序列是不是二元查找树的后序遍历结果
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44872143第9题:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 因此返回true。 如果输入7、4、6、5,没有哪棵原创 2015-04-04 12:31:16 · 1392 阅读 · 0 评论 -
第21题:求1~n序列中等于m的所有组合
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/46582559 github:https://github.com/frank-cq/MyTest第21题:输入两个整数n和m,从数列 1,2,3,…,n中随意取几个数,使其和等于m。*要求将其中所有的可能组合列出来。 代码 package test021;impo原创 2015-06-21 16:24:56 · 2444 阅读 · 0 评论 -
第20题:把只含数字的字符串转换为整数
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/45724461 github:https://github.com/frank-cq/MyTest第20题:输入一个表示整数的字符串,把该字符串转换成整数并输出。*例如输入字符串“345”,则输出整数345。 代码 package test020;/** * Cr原创 2015-05-14 18:13:40 · 740 阅读 · 0 评论 -
第19题:求解斐波拉契数列
第19题(数组、递归):定义Fibonacci数列如下:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)。输入n,用最快的方法求该数列的第n项。 题目中要求提示使用数组 代码 package test019;/** * Created by cq on 2015/4/29. * 第19题(数组、递归):定义Fibonacci数列如下:f(0原创 2015-05-03 08:44:08 · 874 阅读 · 0 评论 -
第18题:类似约瑟夫问题
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/45340319 GitHub地址:https://github.com/frank-cq/MyTest第18题(数组):n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个原创 2015-04-28 18:32:18 · 780 阅读 · 0 评论 -
第14题:查找升序数组中的两数,使其和为输入数字
欢迎转载,转载请注明出处:http://blog.csdn.net/alading2009/article/details/45080773 第14题:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求: 时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=原创 2015-04-16 20:55:16 · 692 阅读 · 0 评论 -
第16题:层序遍历一棵二叉树
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/45151907 第16题:输入一棵二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。 这里也是利用图的宽度优先遍历算法(BFS),所以在第15题的基础上进行简单地修改就得到了层序遍历算法 代码 package test016;i原创 2015-04-20 16:25:49 · 1145 阅读 · 0 评论