Java基础题
基础题
长不大的大灰狼
这个作者很懒,什么都没留下…
展开
-
Java创建对象的几种方式:
Java创建对象的几种方式:1、用new语句创建对象,这是最常见的创建对象的方法。2、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。3、调用对象的clone()方法。4、运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。(1)和(2)都会明确的显式的调用构造函数;(3)是在内存上对已有对象的影印,所以不会调用构造函数;(4)是从文件中还原原创 2020-08-14 19:51:52 · 190 阅读 · 0 评论 -
使用Wait()方法的注意事项:This code may throw an InterruptedException
1 选择void waitForSignal(){Object obj = new Object();synchronized(Thread.currentThread()){ obj.wait(); obj.notify();}}Which statement is true?第一个错误是掷出中断异常InterruptedException,要对 wait() 方法以try/catch 包覆或在方法上声明异常信息。void waitForSignal() throws Inte原创 2020-08-08 17:46:54 · 688 阅读 · 0 评论 -
Java基础题:读“脏”数据
(1)丢失修改当两个或多个事物读入同一数据并修改,会发生丢失更新问题,即后一个事物更新的结果被前一事务所做更新覆盖 即当事务A和B同事进行时,事务A对数据已经改变但并未提交时,B又对同一数据进行了修改(注意此时数据是A还未提交改变的数据),导致A做的数据改动丢失了。(2)不可重复读当两个数据读取某个数据后,另一事务执行了对该数据的更新,当前事务再次读取该数据(希望与第一次读取的是相同的值)...原创 2020-05-08 12:29:09 · 2220 阅读 · 0 评论 -
Java基础题: Mysql数据库相关
Ⅰ:视图来源:牛客网Ⅱ:DATEADDDATEADD() 函数在日期中添加或减去指定的时间间隔。语法DATEADD(datepart,number,date)datapart参数的取值范围是:{yy/yyyy,qq/q,mm/m,dy/y,dd/d,wk/ww,dw/w,hh,mi/n,ss/s,ms,mcs,ns}number 是您希望添加的间隔数date 参...原创 2020-05-08 12:25:38 · 366 阅读 · 0 评论 -
Java基础题:NAT
采用NAT时,在虚拟机中,不用做任何配置,只要宿主机器能访问网络即可。NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件...原创 2020-05-08 11:40:15 · 528 阅读 · 0 评论 -
Java基础题:操作系统相关知识
Ⅰ:BigEndian字节序高内存地址低LittleEndian字节序高内存地址高BigEndian指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中。LittleEndian是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。Ⅱ:首先, 速度最快的当然是缓存, 接着消耗时间最少的是内存, 磁盘寻道时间, 然后是硬盘连续读取时间一个个来分析, L...原创 2020-05-07 09:59:12 · 342 阅读 · 0 评论 -
Java基础题:网络基础相关
Ⅰ:DNS:域名解析。FTP:文件传输。www:信息查询:WWW 是一种建立在Internet 上的全球性的、交互的、动态的、多平台的、分布式的,超文本超媒体信息查询系统,也是建立在Internet 上的一种网络服务。ADSL:非对称数字用户线路,数据传输。...原创 2020-05-07 09:17:06 · 975 阅读 · 0 评论 -
Java基础题:数据结构相关
链表的插入操作时间复杂度为O(1),注意这里指的是排序链表。原创 2020-05-07 09:14:06 · 159 阅读 · 0 评论 -
Java基础题:递归相关知识
尾递归:每次调用函数时不生成新的运行栈,直接将原来的进行覆盖。利用缓存:保存之前计算的结果,每次递归不用再重新计算了尾递归(Tail Recursive), 进入下一个函数不再需要上一个函数的环境了,得出结果以后直接返回。非尾递归,下一个函数结束以后此函数还有后续,所以必须保存本身的环境以供处理返回值。参考博客:递归的两种优化算法...原创 2020-05-07 09:05:10 · 188 阅读 · 0 评论 -
Java基础题:哈夫曼树
先将上列节点按从小到大排序, 2, 3, 6, 8最后形成一颗哈夫曼树:然后就可计算带权路径和: 23 + 33 + 6*2 + 8 = 35链接:哈夫曼树带权路径的详细计算...原创 2020-05-06 21:53:12 · 230 阅读 · 0 评论 -
Java基础题:二叉树相关计算
二叉树的结点个数=分支数+1;分支数=度为2的节点数2+度为1的节点数1;总节点数=度为2的节点数+度为1的节点数+度为0的节点数;本题中,2*199+1=399,即度为1的节点数为0;设度为0的节点数(叶子节点)为x;则x+199=399 >>> x=200...原创 2020-05-06 21:22:42 · 940 阅读 · 0 评论 -
Java基础题:反射相关知识(getDeclaredMethods)
public Method[] getDeclaredMethods()返回类或接口声明的所有方法,包括public, protected, default (package) 访问和private方法的Method对象,但不包括继承的方法,当然也包括它所实现接口的方法。public Method[] getMethods()返回类的所有public方法,包括其继承类的公用方法,当然也包括它所...原创 2020-05-06 21:04:22 · 718 阅读 · 0 评论 -
Java基础题:java并发相关
Ⅰ:答案:BA:CopyOnWriteArrayList适用于写少读多的并发场景B:ReadWriteLock即为读写锁,他要求写与写之间互斥,读与写之间互斥,读与读之间可以并发执行。在读多写少的情况下可以提高效率C:ConcurrentHashMap是同步的HashMap,读写都加锁D:volatile只保证多线程操作的可见性,不保证原子性有些人可能就会把 i++ 误当成原子操作,...原创 2020-05-06 18:09:52 · 273 阅读 · 0 评论 -
Java基础题:GBK到UTF-8的编码字节流转换
B:byte[] dst = new String(src,"GBK").getBytes("UTF-8");原创 2020-05-06 18:01:39 · 795 阅读 · 0 评论 -
Java基础题:类相关知识
本类中的构造方法A(int a)直接用this(x)就可以调用。在方法中需要初始化变量,数组和静态类变量有默认值原创 2020-05-06 17:53:08 · 393 阅读 · 0 评论 -
Java基础题;toLowerCase后判断字符串相等
toLowerCase() 底层是通过 new String()实现,如果需要转换时会通过new String()返回一个引用,如果不需要大小写转换,则直接返回原字符串。public static void main(String[] args) { String a = "hello"; System.out.println(a.toLowerCase()=="hello")...原创 2020-05-06 17:37:11 · 505 阅读 · 0 评论 -
Java基础题:已知某个哈希表的n个关键字具有相同的哈希值,如果使用二次探测再散列法将这n个关键字存入哈希表,至少要进行多少次探测。
答案:c问的是至少需要多少次探测,即我们假设在上一次探测的基础上,每进行一次二次探测都能直接找到对应的位置。第一个:直接找到位置,入坑,1次;第二个:和第一个同hash,找到的位置被第一个给占了,通过二次探测直接找到下一个,入坑,2次;第三个:第一个被占了,第二个也被占了,通过二次探测直接找到第三个,入坑,3次;。。。第n个:n次;一共:(1+n)*n / 2 次注意:二次探...原创 2020-04-01 11:05:54 · 1802 阅读 · 0 评论 -
Java基础题:小根堆为8,15,10,21,34,16,12,删除关键字8之后需重建堆,需要的比较次数为?
用到向下调整:删除8后,将12移动到堆顶,首先12和15、10比较,并和10交换,最后比较12和16,故比较次数为3次。原创 2020-04-01 10:47:13 · 10338 阅读 · 10 评论 -
Java基础题:平衡二叉树(平衡因子)
平衡二叉树:所有子树的高度差<=1平衡因子:高度差分支节点不包括叶子节点图片来源:https://www.nowcoder.com/questionTerminal/d18b23d6f00c41eba5aba6587592d531原创 2020-04-01 10:25:44 · 617 阅读 · 0 评论 -
Java基础题:将N条长度均为M的有序链表进行合并,合并以后的链表也保持有序,时间复杂度为()?
答案为:A方法1:m*n个数归并排序复杂度是O(m*nlog(m*n)),即O(m*nlogm)+O(m*nlogn). n个m长度的序列已经是有序的了,每个m长度的序列进行归并排序的时间复杂度为O(mlogm),则n个m长度的序列的时间复杂度为n*O(mlogm),前后相减O(m*nlogm)+O(m*nlogn)-n*O(mlogm)=O(m*nlogn)即为答案。(这里可以看成对n个...原创 2020-04-01 09:36:58 · 2271 阅读 · 0 评论 -
Java基础题: Integer 类型对象之间的比较
一 Integer 类型对象之间大小比较1. 使用 new Integer() 创建的对象 :在实际开发中,基本类型的包装类更为常用,那么包装类型是怎样进行比较运算的呢?1)对于==运算:Integer i = new Integer(100); Integer j = new Integer(100); System.out.println(i==j); 打印结...原创 2020-03-25 15:30:42 · 845 阅读 · 0 评论 -
Java基础题:初始化
本题答案:C初始化过程:初始化父类中的静态成员变量和静态代码块 ;初始化子类中的静态成员变量和静态代码块 ;初始化父类的普通成员变量和代码块,再执行父类的构造方法;初始化子类的普通成员变量和代码块,再执行子类的构造方法;(1)初始化父类的普通成员变量和代码块,执行 Y y=new Y(); 输出Y(2)再执行父类的构造方法;输出X(3) 初始化子类的普通成员变量和代码块,...原创 2020-03-24 11:35:42 · 295 阅读 · 0 评论 -
Java基础题:Java中类的加载过程
类的加载包括: 加载,验证,准备,解析,初始化。类的加载过程:类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中准备、验证、解析3个部分统称为连接(Lin...原创 2020-03-21 20:58:50 · 164 阅读 · 0 评论 -
Java基础题:Java半编译半解释型语言
A: Java中的编译生成的是字节码文件而不是二进制机器指令B:与操作系统无关D:jvm可以有不同实现.低版本不一定能执行高版本的编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。程序执行效率高,依赖编译器,跨平台性差些,如C、C++、Delphi等。解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行...原创 2020-03-21 16:10:18 · 2307 阅读 · 3 评论 -
Java基础题:ArrayList的构造方法
ArrayList的构造方法:ArrayList list=new ArrayList(); 这是默认创建大小为10的数组,当满了时,每次扩容大小为1.5倍;而 ArrayList list= new ArrayList(20); 使用的ArrayList的有参构造函数,指定了固定长度,创建时直接分配其大小,所以没有进行扩容。ArrayList的构造函数总共有三个:(1)ArrayList...原创 2020-03-20 13:39:50 · 2099 阅读 · 0 评论