Java 笔试练习 03: T44~65

本文是一组关于Java基础知识的笔试题目,涵盖了JDK包的功能、字符串内存分配、类定义、事件模型、线程同步、编码转换、Socket连接、集合操作、面向对象原则等多个方面,旨在考察对Java语言及编程概念的理解。
摘要由CSDN通过智能技术生成

文章目录

44 java有8种基本类型,请问byte、int、long、char、float、double、boolean各占多少个字节?

1 2 8 2 4 8 1

1 4 8 2 4 8 1

1 4 4 2 4 4 2

1 4 4 2 4 8 2

B

45. 下面有关JDK中的包和他们的基本功能,描述错误的是?

java.awt: 包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面

java.io:  包含提供多种输出输入功能的类

java.lang: 包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET

java.util:  包含一些实用性的类

C

**1. java.awt:**提供了绘图和图像类,主要用于编写GUI程序,包括按钮、标签等常用组件以及相应的事件类。

**2. java.lang:**java的语言包,是核心包,默认导入到用户程序,包中有object类,数据类型包装类,数学类,字符串类,系统和运行时类,操作类,线程类,错误和异常处理类,过程类。

**3. java.io:**包含提供多种输出输入功能的类。

4. java.net: 包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET等。

**5. java.applet:**包含java小应用程序的类。

**6. java.util:**包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包。**7. java.sql:**提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。

46. String str1 = “abc”,“abc”分配在内存哪个区域?

字符串常量区

寄存器

答案:C

用new创建的对象在堆区

函数中的临时变量在栈去

java中的字符串在字符串常量区

47. 类 ABC 定义如下:

1 . public class ABC{

2 . public double max( double a, double b) { }

3 .

4 . }

将以下哪个方法插入行 3 是不合法的。()

public float max(float a, float b, float c){ }

public double max (double c, double d){ }

public float max(float a, float b){ }

private int max(int a, int b, int c){ }

选B

48. 一个类可以有多个不同名的构造函数 。( )

正确

错误

错误

只有与类名相同的方法可以叫构造函数

49. 在委托事件模型中,源生成事件并把它发送给一个或多个监听器,每个监听器必须向事件源注册。

T

F

T

https://www.jianshu.com/p/cac99c0f172b

50. 上述代码返回结果为:

Integer a = 1;
Integer b = 1;
Integer c = 500;
Integer d = 500;
System.out.print(a == b);
System.out.print(c == d);

true、true

true、false

false、true

false、false

B

Integer类型在-128–>127范围之间是被缓存了的,也就是每个对象的内存地址是相同的,赋值就直接从缓存中取,不会有新的对象产生,而大于这个范围,将会重新创建一个Integer对象,也就是new一个对象出来,当然地址就不同了,也就!=;

51. 以下多线程对int型变量x的操作,哪个不需要进行同步( )

x=y;

x++;

++x;

x=1;

D

A.由于y的值不确定,所以要加锁;

B,C 两个在多线程情况下是必须要加锁的,因为他们是先被读入寄存器,然后再进行+1操作,如果没有加锁,那么可能会出现数据异常;

D 原子操作,所以不需要加锁

原子性:指该操作不能再继续划分为更小的操作。

Java中的原子操作包括:

1、除long和double之外的基本类型的赋值操作

2、所有引用reference的赋值操作

3、java.concurrent.Atomic.* 包中所有类的一切操作

52. java中将ISO8859-1字符串转成GB2312编码,语句为 ?

new String("ISO8859-1".getBytes("ISO8859-1"),"GB2312")

new String(String.getBytes("GB2312"), ISO8859-1)

new String(String.getBytes("ISO8859-1"))

new String(String.getBytes("GB2312"))

A

byte [ ] String.getBytes(String charsetName); 得到的是以charsetName编码得到的byte数组;

String的构造函数有: String (byte[] bytes, String charsetName);

53. 下面哪个选项正确创建socket连接?

Socket s = new Socket(8080);

Socket s = new Socket(“192.168.1.1”,8080)

SocketServer s = new Socket(8080);

Socket s = new SocketServer(“192.168.1.1”,8080)

B

区分客户端和服务端

服务器端:ServerSocket提供的实例 ServerSocket server = new ServerSocket(端口号)

客户端:Socket提供的实例 Socket client = new Socket(IP地址,端口号)

54. list是一个ArrayList的对象,哪个选项的代码填到//todo delete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?()

Iterator it = list.iterator();
int index = 0;
while (it.hasNext())
{
   
    Object obj = it.next();
    if (needDelete(obj))  //needDelete返回boolean,决定是否要删除
    {
   
        //todo delete
    }
    index ++;
}

it.remove();

list.remove(obj);

list.remove(index);

list.remove(obj,index);

A

源码是这么描述的:ArrayList 继承了 AbstractList, 其中AbstractList 中有个modCount 代表了集合修改的次数。在ArrayList的iterator方法中会判断 expectedModCount与 modCount是否相等,如果相等继续执行,不相等报错,只有iterator的remove方***在调用自身的remove之后让 expectedModCount与modCount再相等,所以是安全的。

55. 下面不是面向对象的基本原则的是?

单一职责原则(Single-Resposibility Principle)

开放封闭原则(Open-Closed principle)

抽象类原则(Abstract-Class principle)

依赖倒置原则(Dependecy-Inversion Principle)

接口隔离原则(Interface-Segregation Principle)

C

面向对象的五大基本原则</

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值