
程序员面试笔记
lk小强
水滴穿石,一步一个脚印成长为大神
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
牛客网笔试题-考考察java程序初始化顺序和try-finally块
package test;/** * @author kankan * @creater 2019-06-04 9:40 */class Test { public static void main(String[] args) { System.out.println(new B().getValue()); } static class A ...原创 2019-06-04 10:21:59 · 326 阅读 · 0 评论 -
树支路总数 = 树节点总数 - 1
树(不仅仅是二叉树)中每个节点头上都有一个支路,但唯独有一个是例外——根节点所以我们可以得到树的一个重要结论①:树支路总数 = 树节点总数 - 1支路总数怎么计算?设度为 i 的节点有 xi 个,所以支路总数等于 Σ i * xi二叉树的度只有0,1,2带入重要结论①所以有:0x0 + 1x1 + 2*x2 = x0 + x1 + x2 - 1两边稍微计算一下得出:x2...原创 2019-03-18 14:39:06 · 4399 阅读 · 0 评论 -
统计一个英文文本字符中包含的英文元音字母的个数
package com.itcast.demo5;public class Main{ public static void main(String[] args) { String text = "Beijing, the Capital City, is the political," + "cultural and diplo...原创 2019-03-21 15:06:02 · 1516 阅读 · 0 评论 -
Java ConcurrentModificationException异常原因和解决方法
一.ConcurrentModificationException异常出现的原因从异常信息可以发现,异常出现在checkForComodification()方法中。 我们不忙看checkForComodification()方法的具体实现,我们先根据程序的代码一步一步看ArrayList源码的实现:首先看ArrayList的iterator()方法的具体实现,查看源码发现在Array...原创 2019-03-12 13:47:30 · 32667 阅读 · 2 评论 -
Java线程中yield与join方法的区别
理解线程的优先权接下来,理解线程优先级是多线程学习很重要的一步,尤其是了解yield()函数的工作过程。记住当线程的优先级没有指定时,所有线程都携带普通优先级。优先级可以用从1到10的范围指定。10表示最高优先级,1表示最低优先级,5是普通优先级。记住优先级最高的线程在执行时被给予优先。但是不能保证线程在启动时就进入运行状态。与在线程池中等待运行机会的线程相比,当前正在运行的线程可能总是...原创 2019-03-15 16:24:48 · 9291 阅读 · 1 评论 -
Java二级错题集
1.树中结点数即为树中所有结点的度之和再加12、3、4、在任意一颗二叉树中,度为0的结点总是比度为2的结点多一个5、6、7、swtich()变量类型只能是int、short、char、byte和enum类型(JDK 1.7 之后,类型也可以是String了)。当进行case判断时,JVM会自动从上到小扫描,寻找匹配的case,可能存在以下情况:8、按位与(Bitwise...原创 2019-03-08 08:24:16 · 301 阅读 · 0 评论 -
The local variable sum may not have been initialized的深刻理解
今天做了到编程题,才深刻领会到这个概念于是深入了解一下package com.itcast.demo3;public class People { private String name; private int age; String getName() { return name; } int getAge() { ...原创 2019-03-15 15:05:29 · 14683 阅读 · 0 评论 -
05 内连接和外连接区别
05 内连接和外连接区别转载 2019-03-11 08:18:07 · 161 阅读 · 0 评论 -
truncate(截断)与delete(删除)的区别
truncate(截断)与delete(删除)的区别truncate:会清空表中所有的数据,速度快,不可回滚;实质是删除整张表包括数据再重新创建表;delete:逐行删除数据,每步删除都是有日志记录的,可以回滚数据;实质是逐行删除表中的数据;实例验证:deletetruncate由以上实例验证可知,由事务控制的truncate截断操作是不可回滚恢复的。...原创 2019-03-11 08:10:14 · 840 阅读 · 0 评论 -
java中FileWriter和FileReader 的用法
java:IO流(readLine()和newLine()方法)package com.itcast.demo4;import java.io.*;public class Java_2 { public static void main(String args[]) { String ShowMes[] = {"在那山的那边海的那边有一群蓝精灵", "它们活泼又...原创 2019-03-19 15:01:30 · 5046 阅读 · 0 评论 -
Java面试笔试-010-Java中的clone方法
1)引用传递与值传递由于指针不仅会给开发人员带来使用上的不便,而且也是造成程序不稳定的根源,为了消除C/C++语言的这些缺点,Java语言取消了指针的概念,但这只是在Java语言中没有明确提供指针的概念与用法,而实质上每个new语句返回的都是一个指针的引用,只不过在大部分情况下开发人员不需要关心如何去操作这个指针而已。由于Java取消了指针的概念,因此开发人员在编程中往往忽略了对象和引用的区别,...原创 2019-03-26 20:42:17 · 256 阅读 · 0 评论 -
解析大端字符串(华为实习生笔试)
思路:1.将读取的字符串,转成字符数组,用于遍历2.遍历字符数组中每一个元素,截取到第9个元素,也就是拿到一个编码组3.拿到一个编码组,对这个编码组的首字符进行判断,为0对除首位的编码组进行反转存储到动态数组中,为1按顺序存储到动态数组中4.处理好一个编码组,接着继续遍历到下一个编码的结尾,在重复上述操作package com.huawei;import java.util.Ar...原创 2019-04-04 14:31:14 · 440 阅读 · 0 评论 -
Java中.next()和.nextLine()的区别
package com.huawei;import java.util.Scanner;public class Main1 { public static void main(String[] args) { String s1,s2; Scanner sc=new Scanner(System.in); System.out.print("请输入第...原创 2019-04-04 14:34:05 · 2651 阅读 · 0 评论 -
Java知识点积累01-自动拆装箱问题
Java自动拆装箱(Autoboxing and unboxing)学习package com.question;/** * @author kankan * @creater 2019-05-23 19:50 */public class AutoBoxingTest { public static void main(String[] args) { In...原创 2019-05-23 20:01:46 · 192 阅读 · 0 评论 -
运算符优先级比较口诀
单:单目运算符+ –(负数) ++ – 等算:算数单目运算符* / % + -移:位移单目运算符<< >>比:关系单目运算符> < >= <= == !=按: || & | ^ 按位与逻:逻辑单目运算符&&三:三目单目运算符A > B ? X : Y赋:赋值=单 算 移 比 按 逻 三 赋...原创 2019-05-23 17:24:30 · 3166 阅读 · 0 评论 -
编译看左边,运行看右边
package com.question.question;/** * @author kankan * @creater 2019-05-27 19:30 */public class Base { public void method(){ System.out.println("Base"); }}多态问题,无论向上向下转型,都记住一句话...原创 2019-05-27 19:36:12 · 4785 阅读 · 0 评论 -
String类型是不可变类理解
Object的hashCode()默认是返回内存地址的,但是hashCode()可以重写,所以hashCode()不能代表内存地址的不同System.identityHashCode(Object)方法可以返回对象的内存地址,不管该对象的类是否重写了hashCode()方法。package com.question;/** * @author kankan * @creater 20...原创 2019-05-11 07:44:11 · 892 阅读 · 0 评论 -
String类型是不可变类理解
Object的hashCode()默认是返回内存地址的,但是hashCode()可以重写,所以hashCode()不能代表内存地址的不同System.identityHashCode(Object)方法可以返回对象的内存地址,不管该对象的类是否重写了hashCode()方法。package com.question;/** * @author kankan * @creater 20...原创 2019-05-11 07:44:11 · 979 阅读 · 0 评论 -
finally块中语句执行顺序问题
package com.question;/** * @author kankan * @creater 2019-05-07 20:18 */public class Test { public static void main(String args[]) { System.out.println(ddd()); } public s...原创 2019-05-07 20:49:15 · 456 阅读 · 0 评论 -
为什么匿名内部类用的变量必须final呢?
用final修饰的成员变量表示常量,存在内存中的常量区(常量区位于堆区)(jvm内存结构),放在常量区里面,所以效率上相对来说会高那么一点。为什么匿名内部类用的变量必须final呢?从Java设计的角度来说,单纯的就为了保护数据安全和代码稳定。因为Java通过类的封装规范了类与类之间的访问权限,而内部类却打破了这种规范,它可以直接访问自身所在的外部类里私有成员,而且自身还可以创建相同的成员,从...原创 2019-05-09 17:06:17 · 1512 阅读 · 0 评论 -
算法之暴力破解法(穷举法)
一,什么是暴力破解法?暴力破解法,就是把所有条件,相关情况统统考虑进去,让计算机进行检索,指导得出与之所有条件符合的结果(但是,暴力破解法对计算机资源耗费严重,如果条件太复杂,运算速度缓慢,为了解决这一问题,我们可以事先把与之不相关的条件进行限制,减少计算机的运算量)把所有情况都给列出来了,蜜蜂每次到的点都有五种可能性,先确定了第一次跑的一种可能性,是第一个点,那么第二个点就不能出现第一...原创 2019-03-28 09:16:56 · 14307 阅读 · 0 评论 -
子类继承父类的构造函数注意事项
如果父类有无参构造方法,那么在写子类的构造方法时可以不用super调用,其实就是调用父类的无参构造方法,总的来说就是子类的构造方法创建时要调用父类的构造方法。package cn.java.test;public class Person { public String name; public int age; public Person(String name, int age)...原创 2019-03-31 10:15:57 · 519 阅读 · 0 评论 -
三种方式如何获取到Class类
三种方式如何获取到Class类package com.test;public class Test1 { public static void main(String[] args) { //获取到Class类 try { //1.Class.forName("com.test.Sub"); //Class c = Class.forName("com.test.S...原创 2019-03-27 08:32:34 · 4247 阅读 · 0 评论 -
java中的 FileWriter类 和 FileReader类的一些基本用法
FileWriter学习FileWriter 文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失败。FileOutputStream 用于写入诸如图像数据之类...原创 2019-03-07 14:52:29 · 6944 阅读 · 1 评论 -
java中classLoader浅析
[Java类加载器]Java中classLoader浅析.原创 2019-03-07 08:58:38 · 155 阅读 · 0 评论 -
java程序员面试笔试宝典-4.10多线程
4.10.1 什么是线程?它和进程有什么区别?为什么要 使用多线程?线程是指程序在执行过程中,能够执行程序代码的一个执行单元。在java语言中,线程有四种状态:运行,就绪,挂起和结束。进程是指一段正在执行的程序。线程有时也被称为轻量级进程,它是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段,数据段和堆空间)及一些进程级的资源(例如打开的文件)但是各个线...原创 2019-02-01 18:27:19 · 327 阅读 · 0 评论 -
java程序员面试笔试宝典-4.2面向对象技术
参考 java_1101liu0yun4.2.1面向过程与面向对象的比较面向过程:一种较早的编程思想,顾名思义就是该思想是站着过程的角度思考问题,强调的就是功能行为,功能的执行过程,即先后顺序,而每一个功能我们都使用函数(类似于方法)把这些步骤一步一步实现。使用的时候依次调用函数就可以了。面向过程的设计:最小的程序单元是函数,每个函数负责完成某一个功能,用于接受输入数据,函数对输入数据...原创 2019-01-16 20:12:18 · 473 阅读 · 0 评论 -
java程序员面试笔试宝典-4.9容器
4.9.1 Java Collections框架是什么?Java Collections框架中包含了大量集合接口以及这些接口的实现类和操作他们的算法例如:排序,查找,替换,复制,取最小元素,取最大元素等。具体而言,主要提供了List列表,Queue队列,Set集合,Stack栈,和Map映射表,存放键值对。其中List,Queue,Set,Stack都继承自Collection接口。Co...原创 2019-01-31 21:15:23 · 640 阅读 · 0 评论 -
java程序员面试笔试宝典-4.7输入输出流
4.7.1 Java IO流的实现机制是什么?java语言中,输入和输出都被称为抽象的流,流可以看作一组有序的字节集合,即数据再两设备之间的传输。流的本质是数据传输,根据处理数据类型的不同,流分为字节流和字符流。字节流以字节(8bit)为单位,包含两个抽象类:InputStream(输入流)和OutputStream(输出流)字符流以字符(16bit)为单位,根据码表映射字符,一次可以读多...原创 2019-01-25 18:47:40 · 475 阅读 · 0 评论 -
JAVA深复制(深克隆)与浅复制(浅克隆)
浅复制与深复制概念1.浅复制(浅克隆)被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。2.深复制(深克隆)被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象...原创 2019-01-14 14:19:54 · 5937 阅读 · 1 评论 -
java程序员面试笔试宝典-4.4基本类型与运算
4.4.1java提供了哪些基本数据类型?原创 2019-01-19 09:38:46 · 388 阅读 · 0 评论 -
Java程序员面试宝典笔记记录-4.1基本概念
4.1.2 下列说法错误的有( )Java面向对象语言容许单独的过程与函数存在Java面向对象语言容许单独的方法存在Java语言中的方法属于类中的成员(member)Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同答案:ABCjava不允许单独的方法,过程或函数存在,需要隶属于某一类中。——AB错java语言中的方法属于对象的成员,而不是类的成员。不过,其中静态...原创 2019-01-16 08:44:54 · 3689 阅读 · 3 评论 -
java程序员面试笔试宝典-4.3关键字
4.3.1变量命名有哪些规则?java规定标识符只能是字母,数字,下划线_,和$组成,并且标识符的第一个字符不能是数字。此外标识符也不能包含空白字符(换行,空格和制表符)java中变量名区分大小写。4.3.2break,continue,以及return有什么区别?break:用于直接强行跳出当前循环,内层循环。continue:用于停止当次循环,回到循环起始处,进入下一次循环操...原创 2019-01-17 16:46:56 · 550 阅读 · 0 评论 -
在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数是多少?
正确的二分查找应该是一次折半后,high=middle-1 或者 low=middle+1;所以第一次查找时 high=12,low=0; middle= (0+12)/2 =6,即53;第二次查找时 high=12 low =6+1; middle = (7+12)/2 = 9,即78 第三次查找时 high=12 low =9+1; middle = (10+12)/2 = 1...原创 2018-09-25 15:38:56 · 12528 阅读 · 0 评论 -
java程序员面试笔试宝典-4.11 Java数据库操作
4.11.1 如何通过JDBC访问数据库Java数据库连接(Java DataBase Connectivity -JDBC)用于在java程序中实现数据库操作功能,它提供了执行SQL语句,访问各种数据库的方法,并为各种不同的数据库提供统一的操作接口。java.sql包中包含了JDBC操作数据库的所有类。通过JDBC访问数据库一般有如下几个步骤:1)加载JDBC驱动器。将数据库的JDBC...原创 2019-02-01 22:47:27 · 246 阅读 · 0 评论 -
java程序员面试笔试宝典-4.5 字符串与数组
4.5.1 字符串创建与存储的机制是什么?字符串的声明主要有以下两种情况:1)String s1 = new String(“abc”);String s2 = new String(“abc”);s1和s2内容相同,但是在内存中的地址是不同的,只要用到new总会生成新的对象。2)String s1 = “abc”;String s2 = “abc”;在JVM中存在一个字符串池,保存...原创 2019-01-22 17:59:50 · 338 阅读 · 0 评论 -
java程序员面试笔试宝典-4.6异常处理
4.6.1 finally块中的代码什么时候被执行?问题:try{}里面有return语句,那么紧跟在try后面的finally{}中的代码是否会被执行?如果会的话什么时候被执行,在return之前还是之后?任何语句要执行,都必须在return之前,除非碰到exit函数如果try-finally或者catch-finally中都有return语句,那么finally块中的return语句将会...原创 2019-01-22 20:48:13 · 1107 阅读 · 1 评论 -
Java通过UUID随机生成36位、32位唯一识别码(唯一字符串)
package cn.itcast.demo3;import java.util.UUID;/** * 通过UUID随机生成36位、32位唯一识别码(唯一字符串) * @author 小强 * */public class Test { public static void main(String[] args) { int i = 0; while(i < 10)...原创 2019-03-06 21:53:24 · 10773 阅读 · 0 评论 -
java中表示二进制、八进制、十进制、十六进制
计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码, 补码=反码+1。在 二进制里,是用 0 和 1 来表示正负的,最高位为符号位,最高位为 1 代表负数,最高位为 0 代表正数。 以负数-5为例: &gt;1.先将-5的绝对值转换成二进制,即为0000 0101; &gt;2.然后求该二进制的反码,即为 1111 1010; &gt;3.最后将反码加1,即为:111...原创 2019-03-04 09:18:12 · 1140 阅读 · 0 评论 -
java中右移运算符>>和无符号右移运算符>>>的区别
首先左移和右移的区别是很好区分的左移&lt;&lt; :就是该数对应二进制码整体左移,左边超出的部分舍弃,右边补零。举个例子:253的二进制码1111 1101,在经过运算253&lt;&lt;2后得到1111 0100。很简单右移&gt;&gt; :该数对应的二进制码整体右移,左边的用原有标志位补充,右边超出的部分舍弃。无符号右移&gt;&gt;&gt原创 2019-03-04 08:54:38 · 5391 阅读 · 4 评论