自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u014683368的博客

从菜鸟到笨鸟的成长之路

  • 博客(51)
  • 收藏
  • 关注

原创 try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?

也许你的答案是在 return 之前,但往更细地说,我的答案是在 return 中间执行,请看下面程序代码的运行结果:public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(new Test().test());;}int test(){try{re...

2018-07-21 17:46:47 195

原创 面向对象的特征有哪些方面

面向对象的编程语言有封装、继承 、抽象、多态等 4 个主要的特征。1 封装:封装是保证软件部件具有优良的模块性的基础, 封装的目标就是要实现软件部件的“高内聚、低耦合”, 防止程序相互依赖性而带来的变动影响。 在面向对象的编程语言中, 对象是封装的最基本单位, 面向对象的封装比传统语言的封装更为清晰、更为有力。 面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就...

2018-07-21 17:34:47 219

原创 "=="和 equals 方法究竟有什么区别?

==比的是对象地址是否相等,equals比的是对象内容是否相等。==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存, 对象本身占用一块内存(堆内存),变量也占用一块内存,例如 Objet obj = new Obj...

2018-07-21 17:27:25 163

原创 使用 final 关键字修饰一个变量时,是引用不能变,还 是引用的对象不能变?

使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:final StringBuffer a=new StringBuffer("immutable");执行如下语句将报告编译期错误:a=new StringBuffer("");但是,执行如下语句则可以通过编译:a.append(" broken!");有人在定...

2018-07-21 17:24:02 158

原创 short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1; 有什么错?

对于 short s1 = 1; s1 = s1 + 1; 由于 s1+1 运算时会自动提升表达式的类型,所以结果是 int 型,再赋值给 short 类型 s1 时,编译器将报告需要强制转换类型的错误。对于 short s1 = 1; s1 += 1;由于 += 是 java 语言规定的运算符, java 编译器会对它进行特殊处理,因此可以正确编译 ...

2018-07-21 17:18:11 174

原创 switch 语句能否作用在 byte 上,能否作用在 long 上,能 否作用在 String 上?

    switch只能时int 或这能转化为int型的byte,short,char,jdk1.7之后String也可以。     在 switch( expr1)中, expr1 只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是 int基本类型或 Integer 包装类型,由于, byte,short,char 都可以隐含转换为 int,所以,这些类型以及这些类型的包装类...

2018-07-21 16:30:32 4826

原创 Java中&和&&的区别

    这两者都是表示逻辑与,只有当两边都是true时,返回true,只要有一个false则结果返回false。    &&还具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式,例如,对于 if(str != null&& !str.equals(“”))表达式,当 str 为 null 时,后面的表达式不会执行,所以不会出现 NullP...

2018-07-19 22:47:18 38992 1

转载 idea springboot maven搭建SSM框架

最初的自己写配置搭建ssm框架那真的是一个心累啊,各种配置。后面使用springboot来搭建发现轻松的一匹。但是失败了好几次,一个是因为maven的设置在idea中错误,详见https://blog.csdn.net/qq_29976261/article/details/80541033二是配置文件方面有些博客上的有问题,导致有些依赖包出问题。pom.xml<?xml ve...

2018-07-17 17:03:35 635

转载 idea+Maven+SSM框架搭建【spring+springmvc+mybatis】

 (1)     Maven设置Maven是一个项目管理工具,本项目中主要用来对jar包的管理 File – Settings -- MavenMaven中conf 中 settings.xml设置(可要可不要,就是上图中的local repository)(2)     创建maven项目File—New--Project接着下一步,这里需要注在P...

2018-07-17 16:54:14 1332

转载 mysql安装与navicat连接与破解

mysql安装https://www.cnblogs.com/laumians-notes/p/9069498.htmlnavicat连接与破解 https://blog.csdn.net/qq_21205435/article/details/78902052

2018-07-12 17:49:18 141

原创 网宿面试——有10T的IP地址数据,内存只有10M,怎么找出出现频率最大的那个IP

这种大数据的的题肯定是要分堆来做,再从堆中选出每个堆中最大的数,然后进行比较。1,首先就是如何进行分堆的问题,这边我们使用hash来分成n个10M的小文件,10T除以10M约等于1000000,所以使用hash(IP)%1000000,来分堆。2,从每个堆中选取出现次数最多的IP;3,从这100000个IP中选择出现最多的IP即可。...

2018-05-16 17:58:16 2069 1

转载 为什么switch...case语句比if...else执行效率高

为什么switch...case语句比if...else执行效率高简言之,编译的时候创建了一个map存于.rodata区中,运行的时候直接根据输入(c的值)查表,找到对应的IP后直接跳转。 (省去了cmp, jmp -> cmp, jmp -> cmp, jmp...这一冗长的计算过程。) 总结: switch...case...执行效率高,属于典型的以空间换时间。也就是说,(套用算法...

2018-05-03 11:34:33 818

原创 基数排序详解以及java实现

基数排序详解以及java实现这篇讲的很清楚,附上本人自己写的代码,将空间位n*10减为了n;package suanfa;import java.util.Arrays;import java.util.Scanner;import java.util.concurrent.CountDownLatch;public class Main { public static vo...

2018-04-25 15:21:05 232

原创 归并排序

归并排序就是先递归分治,再进行合并排序,因为合并,所以需要一个辅助数组,空间复杂度为O(n);因为每个数和其他数比较log(n)次。所以时间为nlog(n)。应用的算法题比如 求逆序对。package suanfa;import java.util.Arrays;import java.util.Scanner;import java.util.concurrent.CountDown...

2018-04-24 16:56:54 191

原创 快速排序及其优化

1、快速排序的基本思想: 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小。之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。原始快排代码如下。package suanfa;import java.util.Arrays;import java.util.Scanner;import java.util.concu...

2018-04-24 15:54:03 133

原创 选择排序

选择排序就是每次选择剩余所有数中最小或者最小的数与当前位置的数进行交换。package suanfa;import java.util.Arrays;import java.util.Scanner;import java.util.concurrent.CountDownLatch;public class Main { public static void main (S...

2018-04-24 12:38:08 112

原创 插入排序

插入排序,感觉没有什么好说的,主要优点是它的比较次数比较少,在数据量较小的时候它的性能优于快排,所以在问如何优化快排的时候,可以说当子序列的数据量分到较小的时候可以使用插入排序。package suanfa;import java.util.Arrays;import java.util.Scanner;import java.util.concurrent.CountDownLatc...

2018-04-24 11:27:51 125

原创 冒泡排序

冒泡排序及其改进

2018-04-24 09:59:48 105

转载 线程池任务添加流程

一个任务进来,如果核心线程未满,则创建核心线程来执行,如果核心线程已满则放到阻塞队列中,如果阻塞队列已满未达到最大线程数,则创建非核心线程来处理任务,如果达到最大线程数则拒绝任务。ExecutorService 提供了两种提交任务的方法:execute():提交不需要返回值的任务submit():提交需要返回值的任务有两个方法关闭线程池:`shutdown() 将线程池的状态设置为 SHUTDOW...

2018-04-17 16:59:58 2299

原创 UDP和TCP 的区别

UDP和TCPUDP和TCP都属于传输层协议。 TCP协议:面向连接的、可靠的、基于字节流 UDP协议:无连接、不可靠、基于报文 1、TCP协议中包含了专门的传递保证机制,当数据接收方收到发送方传来的信息时,会自动向发送方发出确认消息;发送方只有在接收到该确认消息之后才继续传送其它信息,否则将一直等待直到收到确认信息为止。 与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方...

2018-04-13 15:20:29 127

原创 三次握手和四次挥手

三次握手:首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发送ACK报文,并分配资源,这样TCP连接就建立了。就好像Client问Server我想发送个东西给你可以嘛?Server回可以啊,你什么时候发呢,并为此分配资源;Client回说我现在就发送,同时分配资源。这样tcp链接就建立起来了四次握手...

2018-04-13 15:18:40 77

转载 区块链技术是什么?未来可能用于哪些方面?

原地址https://www.zhihu.com/question/27687960

2018-04-04 15:14:31 126

原创 2018美团实习生招聘——K的倍数

图片是盗图的,别介意哈package suanfa;import java.util.Arrays;import java.util.Scanner;public class Main3 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.ne...

2018-04-02 22:45:04 237

原创 美团2018实习生招聘——数字字符

#include<stdio.h>#include<string.h>#define MAXN 100010char s[MAXN], t[MAXN];int dist(int r, int len){int num = 0;for(int i = 0; i < len; i++){if(t[i] != s[r])num++;r++;}re...

2018-04-02 22:04:33 165

转载 数组中每个数会出现3次,只有1个例外的数仅出现1次。 Single Number

太烧脑,不是很理解啊点击打开链接。数组中只有一个数是出现一次,其他都是两次,这题就是简单的直接异或就可以了,因为相同的数异或为零。如果数组中有两个数只出现一次,其他都是两次,先异或一次,得到目标两个数的异或值,求出最右位为一的数(假设第i),这位数的两个目标数必然一个是1,一个是0,把数组分为两组,一组第i位为0一组第i位位1的两组,问题就转化为了之前的问题了。...

2018-04-02 21:32:37 1058

原创 什么是线程安全

线程安全我个人的理解就是,多个线程运行某段代码的结果和单个线程运行的结果一致,就可以认为是线程安全的。那么是什么引起的线程不安全的?我认为大部分原因是全局变量和静态变量导致的。总而言之,线程就是在争资源,有冲突就是不安全的,没有冲突就是安全的。比如,多个线程的功能都是读取一个数,那肯定不会冲突;如有有人是写这个数,那就会有冲突。...

2018-04-02 21:23:45 99

转载 如何在阿里技术面试中脱颖而出?(内部资料)

原创 2018-04-02 宗心 阿里技术阿里妹导读:知己知彼、百战不殆,面试也是如此。只有充分了解面试官的思路,才能更好地在面试中充分展现自己。今天,阿里高级技术专家将分享自己作为面试官的心得与体会。如果你是面试者,可以借此为镜,对照发现自己的长处与不足,有针对性学习成长;如果你是面试官,相信也能通过他的讲述,有所启发。招聘是团队管理者工作中的重要一环。本文会结合自己亲身经历以及接受的招聘培训,...

2018-04-02 09:54:08 115

原创 合并两个排序的链表

/*public class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}*/public class Solution {    public ListNode Merge(ListNode list1,ListNode list2) {   ...

2018-03-30 10:55:21 90

原创 二进制中1的个数

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。本题或者使用Java内置的Integer.toBinaryString方法将十进制数转化为2进制在一个个判断是否为1public class Solution { public int NumberOf1(int n) { int count = 0; while (n != 0) { ...

2018-03-30 10:35:48 99

原创 数值的整数次方

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。public class Solution { public double Power(double base, int exponent) { double result = 1; if(exponent == 0) { return r...

2018-03-30 10:03:00 78

原创 调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;public class Solution {public void ...

2018-03-30 10:02:40 81

原创 链表中倒数第k个结点

输入一个链表,输出该链表中倒数第k个结点。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode FindKthToT...

2018-03-29 09:06:40 76

原创 网易_Vector,Arraylist,LinkedList的区别和应用场景

ArrayList和Vector都是使用数组的方式存储的,但数组的元素大于实际存储空间时以便插入和增加元素,都允许按索引查找,但是插入元素设计数组元素的移动等内存操作,所以读取快,插入删除慢,但是Vector师线程安全的,线程同步,所以访问速度比ArrayList慢;LinkedList是采用双向链表实现的,适合动态插入和删除数据,但是随机访问速度比较慢。...

2018-03-29 09:06:26 757

原创 数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:大于一半的数肯定可以和其他小于一半的数一对一消除,最后至少多一个;public class Solution { public int MoreThanHalfNum_Solu...

2018-03-29 09:06:10 87

原创 最小的K个数

输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个。本题最佳的应该是使用堆排序来做,其次是快排的思想来做。如果题目换成求第K小的数,应是快排的思想最优。import java.util.ArrayList;import java.util.Arrays;public class Solution { public ArrayList<Integer...

2018-03-29 09:06:01 66

原创 孩子们的游戏(圆圈中最后剩下的数)

每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下...

2018-03-29 09:05:43 79

原创 求1+2+3+...+n

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。这题我用Java写的话&&报错,C++不会,求大神指导;class Solution {public: int Sum_Solution(int n) { int sum = n; n && (s...

2018-03-29 09:05:37 191

原创 数组中重复的数字

在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。public class Solution { // Parameters: // numbers: a...

2018-03-29 09:05:31 134

原创 构建乘积数组

给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。import java.util.ArrayList;public class Solution { public int[] multiply(int[] A) { int[]...

2018-03-29 09:05:23 101

原创 反转链表

输入一个链表,反转链表后,输出链表的所有元素。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode ReverseL...

2018-03-29 09:04:25 86

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除