2020春季Java面试题

点击蓝色字关注我们!

一个努力中的公众号

长的好看的人都关注了

50a317f189443f978d4134e1f2d0172a.png

    因为开春这场疫情导致各厂返工时间调整,图图万忙之中开始为大家收集了下,今年最新的面试题,希望大家有其他面试题的话可以私发图图,以下是贝乐虎(贝乐虎是什么大家可自行百度搜下,很不错的一家公司,讲究是轻量化开发)目前最新的笔试题,并已整理答案,深入的一些概念望大家自行搜寻。

JAVA笔试题

一、选择题

1.下列说法正确的有(C)

A. class中的constructor不可省略

B. constructor必须与class同名,但方法不能与class同名

C. constructor在一个对象被new时执行

D.一个class只能定义一个constructor

2. 下列标识符不合法的有(A,C,D)

A.new 

B.$Usdollars  

C.1234   

D.car.taxi

3.执行如下程序代码   a=0;c=0;   do{   --c;   a=a-1; }while(a>0); 后,C的值是(C) 

A.0  

B.1   

C.-1 

  D.死循环

4.下列哪些语句关于内存回收的说法是正确的(B)

A.程序员必须创建一个线程来释放内存

B.内存回收程序负责释放无用内存

C.内存回收程序允许程序员直接释放内存

D.内存回收程序可以在指定的时间释放内存对象

5.以下对继承的描述锚误的是 ( A )

A Java中的继承允许一个子类继承多个父类

B. 父类更具有通用性,子类更具体

C. Java中的继承存在着传递性

D. 当实例化子类时会递归调用父类中的构造方法

6.下面哪个流类属于面向字符的输入流(A)

A. BufferedWriter

B. FileInputStream

C. ObjectInputStream

D. InputStreamReader

7.新建一个流对象,下面那个选项的代码是错误的?(B)

A. new BufferedWriter(new FileWriter(“a.txt”));

B. new BufferedReader (new FileInputStream(“a.dat”));

C. new GZIPOutputStream(new FileOutputStream(“a.zip”));

D. new ObjectInputStream(new FileInputStream(“a.dat”));

8.下面关于session的用法哪些是错误的?(A,B,D)

A. HttpSession session=new HttpSession();

B. String haha=session getParameler(:haha”);

C. session.removeAttribute(“haha”);

D. session.setAttribute(:haha:);XmlHttpRequest

9.下列属于关系型数据库的是(A,B)

A.Oracle

B.MySql

C.IMS

D.MongoDB

10.下列说法错误的有(B,C,D)

A.数组是一种对象 

B. 数组属于一种原生类 

 C.intnumber=[]={31,23,33,43,35,63}   

D.数组的大小可以任意改变 

二、简答题

1.如何决定使用 HashMap 还是 TreeMap

    查询的时候使用HashMap,因为HashMap基于散列表实现(推荐作为常规Map使用)。

    增加、快速创建的时候使用TreeMap,因为TreeMap基于红黑树实现。

2.volatile关键字是否能保证线程安全?为什么?

          volatile不是保护线程安全的,因为它保护的是变量安全。主要的功能是保护变量不被主函数和中              断函数反复修改造成读写错误。

3.说一下 mybatis 的一级缓存和二级缓存?

  一级缓存:是SQlSession级别的缓存。在操作数据库时需要构造SqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的SqlSession之间的缓存数据区域(HashMap)是互相不影响的。

   二级缓存:是mapper级别的缓存,多个SqlSession去操作同一个mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。

4.MySql中 CHAR_LENGTH 和 LENGTH的区别?

length:计算字段的长度,一个汉字算3个字符,一个数字或者字母按1个字符

char_length:计算字段的长度,不论是汉字、数字还是字母,均按1个字符来算。

5.类ExampleA继承Exception,类ExampleB继承ExampleA。

有如下代码片断:

try {

    throw new ExampleB("b")

} catch(ExampleA e){

    System.out.println("ExampleA");

} catch(Exception e){

    System.out.println("Exception");

}

请问执行此段代码的输出是什么?

ExampleA

本文先总结到此,面试题后面持续更新,大家有其他比较好的面试题可以私发给图图,从目前形势看来,今年Java会更加难找,但是大家不要气馁,我们一起加油鸭!

                                如果对您有帮助 请点个关注,万分感谢
          

                                (QQ招聘群  710566091
                                 微信招聘群 请加图图微信)

3938a3634ecf7afe6707e5f5def063ce.jpeg

### 回答1: GMM-EM算法的伪代码:// 迭代k次 for (k=0; k<K; k++) { // E步骤 // 计算每个样本属于每个模型的概率 for (i=0; i<N; i++) { for (j=0; j<M; j++) { p[i][j] = pi[j]*Gaussian(x[i],mu[j],sigma[j]); } } // 计算每个样本属于每个模型的期望值 for (i=0; i<N; i++) { for (j=0; j<M; j++) { q[i][j] = p[i][j]/sigma[j]; } } // M步骤 // 更新模型参数 for (j=0; j<M; j++) { pi[j] = pi[j] + q[i][j]; mu[j] = mu[j] + q[i][j]*x[i]; sigma[j] = sigma[j] + q[i][j]*(x[i] - mu[j])*(x[i] - mu[j]); } } ### 回答2: GMM-EM(高斯混合模型期望最大化)算法是一种用于估计高斯混合模型参数的迭代优化算法。下面是GMM-EM算法的伪代码: 输入:观测数据X,高斯分量个数K 输出:高斯混合模型的参数 1. 初始化高斯混合模型参数: - 初始化每个高斯分量的均值向量mu_k,协方差矩阵sigma_k和混合系数pi_k - 使用随机值或者其他预设的初始值进行初始化 2. 迭代优化: - 重复以下步骤,直到收敛: 1. Expectation 步骤: - 计算每个样本属于每个高斯分量的后验概率gamma(z_{nk}),即样本x_n由高斯分量k生成的概率 - 使用当前的参数值计算gamma(z_{nk}),即根据当前参数估计后验概率 2. Maximization 步骤: - 更新均值向量mu_k: - 对于每个高斯分量k,计算新的均值mu_k: - mu_k = (sum_n(gamma(z_{nk})*x_n)) / (sum_n(gamma(z_{nk}))) 其中,sum_n表示对所有样本求和 - 更新协方差矩阵sigma_k: - 对于每个高斯分量k,计算新的协方差矩阵sigma_k: - sigma_k = (sum_n(gamma(z_{nk})*(x_n - mu_k)*(x_n - mu_k).T)) / (sum_n(gamma(z_{nk}))) 其中,sum_n表示对所有样本求和,.T表示矩阵的转置操作 - 更新混合系数pi_k: - 对于每个高斯分量k,计算新的混合系数pi_k: - pi_k = sum_n(gamma(z_{nk})) / N 其中,sum_n表示对所有样本求和,N为样本总数 3. 返回最终的高斯混合模型参数 GMM-EM算法通过交替进行Expectation步骤和Maximization步骤,迭代地优化高斯混合模型的参数,直到收敛到最优参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值