题
luck-cheng
It is my github addr, https://github.com/luck-cheng,
It is my gitee addr, https://gitee.com/luck-cheng.
展开
-
数组是同类型值的集合
考虑语言的问题,数组是同类型的值得集合,有的语言是,有的语言不是的。JavaScript的数组可以是任意object var arr = [function(){alert(“”)},[0,1,2],{0,”ao”,True}]; 所以,error.原创 2016-07-28 17:31:56 · 6280 阅读 · 1 评论 -
for(条件1;条件2;条件3)
for(条件1;条件2;条件3) { //语句 } 执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2…….. 如果条件2为true,则一直执行。如果条件2位false,则for循环结束原创 2016-08-07 10:54:32 · 2926 阅读 · 0 评论 -
String str = new String(“abc”),“abc”在内存中是怎么分配的?
堆、字符串常量区什么是字符串常量池 JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池工作原理 当代码中出现字面量形式创建字符串对象时,JVM首先会对这个字面量进行检查,如果字符串常量池中存在相同内容的字符串对象的引用,则将这个引用返回,否则新的字符串对象被创建,然后将这个引用放入字符串常量池,并返回该引用。实现前提 字符串常量池实现的前提原创 2016-08-07 11:00:54 · 7707 阅读 · 1 评论 -
[java]常用排序
直接插入排序 基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。public void InsertSort(array a){ int i,j; for(i = 1; i < a.length; i++){ int temp = a[i]; for...原创 2016-08-10 17:06:34 · 2083 阅读 · 0 评论 -
new一个对象的时候JVM都做了哪些事情
之前没有进行类加载1.类加载,同时初始化类中静态的属性(赋默认值) 2.执行静态代码块 3.分配内存空间,同时初始化非静态的属性(赋默认值) 4.调用父类构造器 5.父类构造器执行完后,如果自己声明属性的同时有显示的赋值,那么进行显示赋值把默认值覆盖 6.执行匿名代码块原创 2016-08-11 12:36:06 · 3653 阅读 · 0 评论 -
Java下的关键字、保留字
1,Java 关键字列表 (依字母排序 共50组):abstract, assert, boolean, break, byte, case, catch, char, class, const(保留关键字), continue, default, do, double, else, enum, extends, final, finally, float, for, goto(保留关键字), if原创 2016-08-13 09:58:14 · 2325 阅读 · 0 评论 -
Java Collection接口
在java.util包中提供了一些集合类,常用的有List、Set和Map类,其中List类和Set类继承了Collection接口。这些集合类又称为容器,长度是可变的,数组用来存放基本数据类型的数据,集合用来存放类对象的引用。 List接口、Set接口、Map接口以及Collection接口的主要特征如下: Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用。原创 2016-08-13 10:03:12 · 2253 阅读 · 0 评论 -
用二进制来编码字符串"adceadaa",需要能够相据编码,解码回原来的字符串,则至少需要二进制字符的长度是?
利用哈夫曼编码,字符出现的频率越大,则使用越短的二进制进行编码,构建最优二叉树。原创 2016-08-13 10:14:53 · 7110 阅读 · 0 评论 -
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
根据高德纳(Donald Ervin Knuth)的《计算机程序设计艺术》(The Art of Computer Programming),1150年印度数学家Gopala和金月在研究箱子包装物件长宽刚好为1和2的可行方法数目时,首先描述这个数列。在西方,最先研究这个数列的人是比萨的列奥那多(意大利人斐波那契Leonardo Fibonacci),他描述兔子生长的数目时用上了这数列。第一个月初有一原创 2016-09-06 18:59:24 · 26473 阅读 · 4 评论 -
[面试题]大厂常见面试题整理
一、阿里巴巴面试1、开发中Java用了比较多的数据结构有哪些?2、谈谈你对HashMap的理解,底层原理的基本实现,HashMap怎么解决碰撞问题的?这些数据结构中是线程安全的吗?假如你回答HashMap是线程安全的,接着问你有没有线程安全的map,接下来问了conurren包。3、对JVM熟不熟悉?简单说说类加载过程,里面执行的哪些操作?问了GC和内存管理,平时在tomect里面有没有进行过相关的原创 2017-12-27 10:47:44 · 4485 阅读 · 1 评论 -
[leetcode]自练:1
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]原题直接遍历:class Solution { public int[] ...原创 2018-06-11 21:02:07 · 166 阅读 · 0 评论 -
[leetcode]自练:2
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4) 输出:7 -&gt; 0 -&gt; 8 原因:342 + 465 = 807原题public ListNo...原创 2018-06-11 22:26:58 · 235 阅读 · 0 评论 -
题(一)enum AccountType
what is the result of the following code?enum AccountType { SAVING, FIXED, CURRENT; private AccountType() { System.out.println(“It is a account type”); } } class EnumOne原创 2016-08-07 10:53:59 · 2405 阅读 · 0 评论 -
混合赋值运算符的使用
“<<”表示左移位 “>>”表示带符号右移位 “>>>” 表示无符号右移 但是没有<<<运算符 “>>”为带符号右移,右移后左边的空位被填充为符号位 “>>>”为不带符号右移,右移后左边的空位被填充为0 没有<<< 因为<<后右边总是补0原创 2016-08-07 10:02:06 · 2213 阅读 · 0 评论 -
下面的函数哪个是系统调用而不是库函数()?
printf scanf fgetc read print_s scan_s系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思。面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的api。很容易判断,那些什么print和scan都是C库函数,只有read,这是一个linux下的系统函数,C库函数相应的函数是fread。原创 2016-07-28 20:10:32 · 3333 阅读 · 0 评论 -
以下关于linux操作系统中硬链接和软链接的描述,正确的是?
硬链接就是在原有的iNode的引用加一,用ls -li是可以看到,硬连接的文件与源文件iNode值相同;而软连接是建立了一个iNode,专门用来指向实际文件的iNode,像快捷方式。所以D是错误的。 然而我对B保有疑惑,看到B时我就选了。我认为,“建立”一个空文件的软连接是不可能的,连iNode都没有了,怎么可能去建立软连接。应该用“存在”比较恰当。所以B不准确。 删除源文件的话,软连接则指向了一原创 2016-07-28 20:13:27 · 12586 阅读 · 0 评论 -
下列关于链接描述,错误的是
(1)软连接可以跨文件系统,硬连接不可以 (2)硬连接不管有多少个,都指向的是同一个I节点,会把结点连接数增加,只要结点的连接数不是0,文件就一直存在不管你删除的是源文件还是连接的文件。只要有一个存在文件就存在。 当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针, 而是使用文件路径名作为指针。所以删除连接文件对源文件无影响,但是删除源文件,原创 2016-07-28 20:15:52 · 14939 阅读 · 0 评论 -
Linux下两个进程可以同时打开同一个文件,这时如下描述错误的是:
D,一般删除都是文件索引,如果两个文件同时打开同一个文件,一个线程执行删除操作,只要另一个线程不退出,就可以继续对该文件进行操作,一旦退出才找不到该文件的索引节点而报错。原创 2016-07-28 20:18:05 · 7142 阅读 · 0 评论 -
设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B[1..n(n+1)/2]中,对上述任一元素aij(1<=i,j<=n,且i<=j)在B中的位置为()
因为是以列为主, 所以存储的序列个数为1, 2, 3…. j 对于aij, 就应该存在(注意i, j都是大于等于1的) 1 + 2 + 。。。。 + j -1 + i(最后一列只有i个)= j(j-1)/2 + i原创 2016-07-28 20:25:26 · 12823 阅读 · 0 评论 -
一个有序数列,序列中的每一个值都能够被2或者3或者5所整除,这个序列的初始值从1开始,但是1并不在这个数列中。求第1500个值是多少?
设x个数,x/2+x/3+x/5-x/6-x/10-x/15+x/30=1500求x原创 2016-07-28 20:27:51 · 3004 阅读 · 0 评论 -
最坏情况下,合并两个大小为n的已排序数组所需要的比较次数为
a1与b1比较取a1,b1与a2比较取b1,一直这样交替比较,an与bn比较取an,最后bn不用比较。所以是2n-1原创 2016-07-28 20:29:25 · 7683 阅读 · 0 评论 -
语句for( ;1;)是什么意思?
死循环。在C/C++中,非0是true,0是false; for循环中的初始化条件、循环条件和迭代语句都可以为空。 for(;1;)中,循环条件结果需要是boolean类型,但1为int类型,不能自动转为boolean类型,故编译报错原创 2016-07-29 21:51:19 · 5779 阅读 · 0 评论 -
有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值?
每个选项都是通过A,B来得到C,D的,则说明,A,B都是32位的int类型的数,可表示的数的范围为:-2147483648~2147483647。 (1) A选项中: C=(int32)(A+B),D=(int32)(A-B) ,如果能表示,则表示成A=(C+D)/2,B=(C-D)/2,考虑到C+D=(A+B)+(A-B)=2B,虽然B在这个范围内,但是2B有可能超出了32位Int类型的表原创 2016-07-29 21:53:29 · 2599 阅读 · 0 评论 -
假设在n进制下,下面的等式成立,n值是() 567*456=150216
567*456=150216 -》 (5*n2+5*n+7) * (4*n2+5*n+6) = n 5 +5*n4+2*n2+n+6 解方程可得n=18 1735*1392=2415120原创 2016-07-29 21:59:08 · 2404 阅读 · 0 评论 -
浮点数的尾数基值取2,并采用隐含位表数方法,则这种浮点数的表数效率为()
50%原创 2016-07-29 22:02:30 · 5136 阅读 · 0 评论 -
[leetcode]自练:3
给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是3。给定 “bbbbb” ,最长的子串就是 “b” ,长度是1。给定 “pwwkew” ,最长子串是 “wke” ,长度是3。请注意答案必须是一个子串,”pwke” 是 子序列 而不是子串。原题int n = s.length();...原创 2018-06-11 22:55:52 · 165 阅读 · 0 评论