请问以上程序执行的结果是() ?
A.true,true
B.true,false
C.false,true
D.false,false
答案:
C
解析:
A.SQL语言又称为结构化查询语言
B.java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问
C.面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上
D.java是强类型语言,javascript是弱类型语言
E.面向对象的三大特性包括:封装,继承,多态
答案:
C
解析:
值传递,传递的是原来值的副本。
引用传递,除了一些特殊的(String,包装类属于不可变类),一般的引用类型在进行传递的时候,一开始形参和实参都是指向同一个地址的,这个时候形参对对象的改变会影响到实参。
A.try
B.catch
C.throw
D.throws
答案:
A
解析:
处理异常常用的两种方式:
1、try…catch(捕获处理机制);
2、throws(冒泡处理机制).
注意细节:使用try…catch块捕获时可以没有catch块,但当没用catch块的时候必须得有finally块.故选A)
A.如果没有为成员声明指定可访问性修饰符(public,protected和private),则该成员只能访问其类的包中的类及其类的子类的任何位置
B.您无法指定局部变量的可访问性。它们只能在声明它们的区域内访问
C.类的子类必须与它们扩展的类位于同一个包中D)上面提到的都不是
答案:
B
解析:
没有被public,protected,private修饰的类成员,只有同一个包里的类中可以访问,其余都不行;
10.代码行float t=5.1; int i=t; ,不正确的是
A.代码不能编译
B.代码编译, i被设置为5
C.第二行若改为 int i=(byte)t ,并结合D选项,则可编译
D.第一行若改为 float t=5.1f ,并结合C选项,则可编译
答案:
B
解析:
题目要求是不正确的
public class Test {
public static void main(String args[]) {
String s = “祝你考出好成绩!”;
System.out.println(s.length());
}
}
A.24
B.16
C.15
D.8
答案:
D
解析:
略
public interface IService {
String NAME=“default”;
}
A.public String NAME=”default”;
B.public static String NAME=”default”;
C.private String NAME=”default”;
D.public static final String NAME=”default”;
答案:
D
解析:
为什么是public:因为接口必然是要被实现的,如果不是public,这个属性就没有意义了;
为什么是static:因为如果不是static,那么由于每个类可以继承多个接口,那就会出现重名的情况;
为什么是final:这是为了体现java的开闭原则,因为接口是一种模板,既然是模板,那就对修改关闭,对扩展开放。
A.包(package)是Java中描述操作系统对多个源代码文件组织的一种方式。
B.import语句将所对应的Java源文件拷贝到此处执行。
C.包(package)是Eclipse组织Java项目特有的一种方式。
D.定义在同一个包(package)内的类可以不经过import而直接相互使用。
答案:
D
解析:
1、为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。Java中的包一般均包含相关的类,java是跨平台的,所以java中的包和操作系统没有任何关系,java的包是用来组织文件的一种虚拟文件系统。A错
2、import语句并没有将对应的java源文件拷贝到此处仅仅是引入,告诉编译器有使用外部文件,编译的时候要去读取这个外部文件。B错
3、Java提供的包机制与IDE没有关系。C错
4、定义在同一个包(package)内的类可以不经过import而直接相互使用。
14.Java中用正则表达式截取字符串中第一个出现的英文左括号之前的字符串。比如:北京市(海淀区)(朝阳区)(西城区),截取结果为:北京市。正则表达式为()
A.“._?(?=\()”
B.“._?(?=()”
C.“._(?=\()”
D.“._(?=()”
答案:
A
解析:
略,个人公众号中有对正则表达式的详细介绍。
public class Test {
public static void main(String[] args) {
System.out.println(test());
}
private static int test() {
int temp = 1;
try {
System.out.println(temp);
return ++temp;
} catch (Exception e) {
System.out.println(temp);
return ++temp;
} finally {
++temp;
System.out.println(temp);
}
}
}
A.1,2,2
B.1,2,3
C.1,3,3
D.1,3,2
答案:
D
解析:
执行顺序为:
输出try里面的初始temp:1;
temp=2;
保存return里面temp的值:2;
执行finally的语句temp:3,输出temp:3;
返回try中的return语句,返回存在里面的temp的值:2;
输出temp:2
16.检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。
package algorithms.com.guan.javajicu;
public class Inc {
public static void main(String[] args) {
Inc inc = new Inc();
int i = 0;
inc.fermin(i);
i= i ++;
System.out.println(i);
}
void fermin(int i){
i++;
}
}
A.0
B.1
C.2
D.3
答案:
A
解析:
这道题两个考点:
1.值传递与引用传递的区别
2.i++与++i的区别
关于第一点:
int基本类型属于值传递。所以i的值并没有发生改变。i还是为0
关于第二点:Java使用了中间缓存变量机制:
i=i++;等同于:
temp=i; (等号右边的i)
i=i+1; (等号右边的i)
i=temp; (等号左边的i)
而i=++i;则等同于:
i=i+1;
temp=i;
i=temp;
如果将代码中的 i= ++i;可以看到打印的结果是1.
void main( )
{
char ch1,ch2;
ch1 =‘D’+‘8’-‘3’;
ch2 =‘9’-‘1’;
printf(“%c %d\n”,ch1,ch2);
}
A.I ‘8’
B.I 8
C.G ‘8’
D.其他几项都不对
答案:
B
解析:
c语言的题目,ASCII值的运算,A=65,0=48(以此类推)。ch1=68+56-51=73然后以char类型输出所以是I,ch2=57-49=8以整型输出所以是8
A.初始标记
B.并发标记
C.重新标记
D.并发清理
答案:
AC
解析:
用户线程(user-level threads)指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。
CMS的GC过程有6个阶段(4个并发,2个暂停其它应用程序)
-
初次标记(STW initial mark)
-
并发标记(Concurrent marking)
-
并发可中断预清理(Concurrent precleaning)
-
最终重新标记(STW remark)
-
并发清理(Concurrent sweeping)
-
并发重置(Concurrent reset)
在初次标记,重新标志的时候,要求我们暂停其它应用程序,那么这两个阶段用户线程是不会参与的
A.sleep()
B.wait()
C.join()
D.yield()
答案:
B C
解析:
1.sleep()方法
在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”。不推荐使用。
sleep()使当前线程进入阻塞状态,在指定时间内不会执行。
2.wait()方法
在其他线程调用对象的notify或notifyAll方法前,导致当前线程等待。线程会释放掉它所占有的“锁标志”,从而使别的线程有机会抢占该锁。
当前线程必须拥有当前对象锁。如果当前线程不是此锁的拥有者,会抛出IllegalMonitorStateException异常。
唤醒当前对象锁的等待线程使用notify或notifyAll方法,也必须拥有相同的对象锁,否则也会抛出IllegalMonitorStateException异常。
waite()和notify()必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。
**3.yield方法 **
暂停当前正在执行的线程对象。
yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。
yield()只能使同优先级或更高优先级的线程有执行的机会。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
[外链图片转存中…(img-MxJj5W2l-1713436029856)]
[外链图片转存中…(img-DolFqyo9-1713436029856)]
其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!