Java面试题01

1、以下不属于oracle的逻辑结构的是?答案:B

A.段 B.数据文件 C.表空间 D.区


2、构造函数何时被调用?答案:A

A.创建对象时 B.使用对象变量时 C.调用对象方法时 D.类定义时


3、下列排序算法中,最好的情况喂喂O(n)的是?答案:B

A.归并排序 B.直接插入排序 C.快速排序 D.选择排序


4、Oracle中常用的数据库加载工具是?答案:C

A.gdfdist B.oracle Exadata C.sqldr D.gpload


5、以下哪个是Linux的文件系统?答案:C

A.ntfs B.fat32 C.ext3 D.fat16


6、Java.io包中,可以指定编写(如GBK,UTF-8等)读取数据的类是?答案:C

A.FileInputReader B.StringReader C.BufferedReader D.InputStreaReader


7、以下不属于结构型模式的设计模式是?答案:D

A.适配器模式 B.代理模式 C.装饰模式 D.迭代器模式


8、如果在建立了Tcp的socket上调用recv函数,返回值为0,是因为?答案:A

A.对端关闭 B.连接发生了错误 C.没有收到对端数据 D.对端发送了一个长度为0的数据

解析:默认 socket 是阻塞的 解阻塞与非阻塞recv返回值没有区分,都是 <0 出错 =0 连接关闭 >0 接收到数据大小,


9、以下哪些情况下可以终止当前线程?答案:A

A.抛出一个异常 B.当线程执行Sleep()函数 C.当一个优先级高的线程进入就绪状态 D.当创建一个新的线程

解析:A是阻塞,B没关系,C终止,D也不影响


10、Oracle的表连接类型有哪些?答案:ACD

A.哈希连接 B.内连接 C.排序合并连接 D.嵌套循环连接

解析:Oracle中主要有下面四种表连接方式:

  1. SORT MERGE JOIN(排序-合并连接);
  2. NESTED LOOPS(嵌套循环);
  3. HASH JOIN(哈希连接);
  4. CARTESIAN PRODUCT(笛卡尔积);

11、Oracle的内存结构有哪些?答案:ABC

A.SGA B.UGA C.PGA D.MGA

解析:Oracle数据库的主要内存结构包括:

1、SGA(System Global Area):系统全局区域,用于存储共享的内存结构。主要包含:

  • 数据库缓冲区:存储数据库块。

  • 红色日志缓冲区:临时存储在线重做日志记录。

  • 共享池:存储SQL语句、数据字典等共享信息。

2、PGA(Program Global Area):进程专用区域,每个后台进程或用户会话对应一个PGA,用于私有数据存储。主要包含:

  • SQL工作区:执行SQL语句的私有内存。

  • 会话信息:会话私有数据。

3、UGA(User Global Area):用户全局区域,提供大型会话专用内存,可选。

4、大池:供大内存块使用,如大型PL/SQL对象。

5、Java池:供Oracle数据库中的Java代码使用。


12、Oracle的分区方式有哪些?答案:AC

A.散列分区 B.组合分区 C.列表分区 D.区间分区

解析:Oracle 10g提供了以下几种分区类型:

(1)范围分区(range);

(2)哈希分区(hash);

(3)列表分区(list);

(4)范围-哈希复合分区(range-hash);

(5)范围-列表复合分区(range-list)。


13 、[-z""] && echo 1 || echo 2的输出是?答案:1

解析:

[ -z STRING ] "STRING" 的长度为零则为真

"":这个变量的长度为0,所以为真,执行echo 0,所以输出 0;

[-z""]&&echo 2 ||echo 1 输出为2;

[-z"s"]&&echo 2 ||echo 1 输出为1;


14、关于事务管理错误的是?答案:A

A.实现编程事物,可以实现PlatformTransaction接口或是使用事务模板TransactionTemplate

B.Spring事务管理方式包括编程方式、声明式

C.声明式采用配置xml方式,将事务管理与实际业务代码解耦

D.编程式采用的方式来控制事物的边界


15、Oracl中一个用户拥有所有的数据库对象统称为?答案:B

A.数据库 B.模式 C.表空间 D.实例


16、String的传播有几种方式?答案:C

A.3 B.5 C.7 D.4

解析:

Spring 中定义了七种事务传播行为,分别是:(propagation:n.传播,宣传,培养)

  1. REQUIRED:如果当前存在事务,则加入该事务,否则新建一个事务。这是最常见的传播行为,也是默认的传播行为。
  2. SUPPORTS:支持当前事务,如果当前不存在事务,则以非事务方式执行。
  3. MANDATORY:强制要求当前存在事务,如果不存在事务,则抛出异常。(mandatory:adj.强制的)
  4. REQUIRES_NEW:重新开启一个新的事务,如果当前存在事务,则挂起该事务。(注意:默认的事务隔离级别------可重复读中 ,开启的新事务读不到之前挂起事务的操作,而且如果操作相同的表会导致锁表,一定要谨慎使用!)
  5. NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,则挂起该事务。
  6. NEVER:以非事务方式执行操作,如果当前存在事务,则抛出异常。
  7. NESTED:如果当前存在事务,则嵌套事务中执行。嵌套事务是相对于外部事务而言的,它可以独立提交或回滚,但是嵌套事务的提交或回滚并不会对外部事务产生影响。如果外部事务不存在,那么 NESTEDREQUIRED 的效果是一样的。该传播行为只有在使用 JDBC 事务时才有效。

17、不能用来修饰interface的是?答案:ACD

A. private B. public C. protected D. static

解析:interface 是 public 的,力口不加都是 public


18、属于进程之间的通信有?答案: ABCD

A.信号量 B.管道 C.套接字 D.消息队列

解析:进程间的通信有以下几种

  1. 消息队列通信
  2. 共享内存通信
  3. 管道
  4. 信号量通信
  5. 有名管道通信
  6. 无名管道通信
  7. 套接字通信
  8. 高级管道通信
  9. FIFO
  10. 消息传递
  11. Socket
  12. 共享数据

19、在Linux中查看java进程的命令是?答案:jps -l或ps -ef | grep java或pgrep -a java

解析:

1、使用jps命令jps(Java Virtual Machine Process Status Tool)是Java Development Kit(JDK)自带的一个工具,用于列出所有运行的Java进程。

基本使用方法如下:

jps -l

这将列出所有正在运行的Java进程的PID和主类的全路径名。-l选项可以显示主类的全路径名或jar文件的路径。如果你的JDK安装和配置正确,这应该是查看Java进程最直接的方法。

2、使用ps命令ps命令是用于查看当前系统进程状态的工具。你可以结合grep命令,以查看所有Java进程。

如下所示:

ps -ef | grep java

这会列出所有的Java进程,并显示它们的详细信息,如PID、启动时间、CPU使用时间、命令行等。

3、使用pgrep命令pgrep命令是一个可以根据名称查找进程的工具。如下所示:

pgrep -a java

20、java同步实现方法有两种,分别是?答案: 同步方法与同步块

  • 同步方法:使用synchronized关键字修饰方法

当一个方法被synchronized关键字修饰时,同一时间只有一个线程可以执行该方法。其他线程必须等待当前线程执行完毕后才能继续执行。示例如下:

 public synchronized void synchronizedMethod() {
    // 方法体
}
  • 同步块:使用synchronized关键字创建一个同步代码块

当需要同步的代码只是方法的一部分时,可以使用同步块。示例如下:

public void someMethod() {
    // 非同步代码
 
    synchronized (this) {
        // 同步代码块
    }
 
    // 非同步代码
}

21、Oracle的三种文件类型?答案:数据文件;日志文件;控制文件

相关推荐
AndyFrank1 分钟前
mac crontab 不能使用问题简记
linux·运维·macos
激流丶14 分钟前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
筱源源17 分钟前
Kafka-linux环境部署
linux·kafka
Themberfue17 分钟前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
时差95333 分钟前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
让学习成为一种生活方式34 分钟前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画40 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
算法与编程之美1 小时前
文件的写入与读取
linux·运维·服务器
秋意钟1 小时前
MySQL日期类型选择建议
数据库·mysql
南宫生1 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法