第九次面试题

1、 GC是什么?为什么要有GC?

GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

2、 int a=5;int b=7,如何在不定义第三个变量的情况下实现a、b的值互换?

public static void main(String[] args) {

int a = 5;

int b = 7;

// 方法一:

a = a + b;

b = a - b;

a = a - b;

System.out.println(a);

System.out.println(b);

// 方法二:

a = a * b;

b = a / b;

a = a / b;

System.out.println(a);

System.out.println(b);

// 方法三:

a = a ^ b;

b = a ^ b;

a = a ^ b;

System.out.println(a);

System.out.println(b);

}

3、 MVC的各个部分都有哪些技术实现?如何实现?

MVC 是 Model-View-Controller 的简写。 Model 代表的是应用的业务逻辑( 通过
JavaBean, EJB 组件实现), View 是应用的表示面( 由 JSP 页面产生), Controller 是提供
应用的处理过程控制( 一般是一个 Servlet), 通过这种设计模型把应用逻辑, 处理过程和显
示逻辑分成不同的组件实现。 这些组件可以进行交互和重用。

4、 面向对象的特征有哪些方面?

1.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面,面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治,封装的对象,这些对象通过一个受保护的接口访问其他对象

2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表达共性的方法,对象的一个新类可以从现在的类中派生,这个过程成为继承,新类继承了原始类的特性,新类成为原始类的派生类,而原始类称为新类的基类,派生类可以从他的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更加适合特殊的需求

3.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便充分的注意与当前目标有关的方面,抽象包括两个方面,一个是过程抽象,二是数据抽象

4.多态性:多态性是指允许不同类的对象对同一消息作出响应,多态性包括参数化多态性和包含多态性,多态性语言具有灵活,抽象,行为共享,代码共享的优势,很好的解决了应用程序函数同名的问题

5、 简述线程的基本概念、线程的基本状态以及状态之间的关系

线程的基本概念:线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。

线程的基本状态:

1.新生

用new语句创建的线程对象处于新建状态,此时它和其他java对象一样,仅被分配了内存。2.就绪

当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态。处于这个状态的线程位于Java虚拟机的可运行池中,等待cpu的使用权。

3.运行状态

处于这个状态的线程占用CPU,执行程序代码。在并发运行环境中,如果计算机只有一个CPU,那么任何时刻只会有一个线程处于这个状态。

只有处于就绪状态的线程才有机会转到运行状态。

4.阻塞状态

阻塞状态是指线程因为某些原因放弃CPU,暂时停止运行。当线程处于阻塞状态时,Java虚拟机不会给线程分配CPU,直到线程重新进入就绪状态,它才会有机会获得运行状态。

阻塞状态分为三种:

1、等待阻塞:运行的线程执行wait()方法,JVM会把该线程放入等待池中。

2、同步阻塞:运行的线程在获取对象同步锁时,若该同步锁被别的线程占用,则JVM会把线程放入锁池中。

3、其他阻塞:运行的线程执行Sleep()方法,或者发出I/O请求时,JVM会把线程设为阻塞状态。当Sleep()状态超时、或者I/O处理完毕时,线程重新转入就绪状态。

5.死亡状态

当线程执行完run()方法中的代码,或者遇到了未捕获的异常,就会退出run()方法,此时就进入死亡状态,该线程结束生命周期。

6、 Float f=3.4是否正确?

不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。

7、 用js代码写一个Ajax请求(get方式)(写出代码)

function doGet(url){ 
// 注意在传参数值的时候最好使用encodeURI处理一下,以防出现乱码 
createxmlHttpRequest(); 
xmlHttp.open("GET",url); 
xmlHttp.send(null); 
xmlHttp.onreadystatechange = function() { 
if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) { 
alert(‘success‘); 
} else { 
alert(‘fail‘); 
} 
} 
}

8、 截取字符串abcdefg的efg(写出代码)

public static void main(String[] args) {

String s = "abcdefg";

s = s.substring(4, 7);

System.out.println(s);

}

9、 简要回答如何解决页面前端各个浏览器的兼容性问题?

因为很多浏览器的内核不一样,解析页面内容的时候也不一样。所以在a浏览器显示的内容在b浏览器就不一定是一样的。可以考虑使用html5,其兼容性越来越强,而且很多浏览器开始都开始兼容html5了。

10、        写出一条mysql的分页语句

select * from table order by id limit (intPage - 1) * PageRow , intPage * PageRow
PageRow 每页多少条记录
intPage 页数

11、       
请编写sql语句,要求tf_f_user表中随机查询5条数据

MySQL:
SELECT * FROM TF_F_USER  ORDER BY  RAND() LIMIT 5

12、       
是否可以继承String类?

因为Sting是这样定义的:public final class String extends Object,里边有final关键字,所以不能被继承。

什么样的类不能被继承?

一,在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的。
二,final是java中的一个关键字,可以用来修饰变量、方法和类。用关键词final修饰的域成为最终域。用关键词final修饰的变量一旦赋值,就不能改变,也称为修饰的标识为常量。如果一个类的域被关键字final所修饰,它的取值在程序的整个执行过程中将不会改变。
三,假如说整个类都是final,就表明自己不希望从这个类继承,或者不答应其他任何人采取这种操作。换言之,出于这样或那样的原因,我们的类肯定不需要进行任何改变;或者出于安全方面的理由,我们不希望进行子类化(子类处理)。

13、日期和时间:(写出代码)

-如何获得年月日、小时分钟秒?

-如何取得从1970年1月1日0时0分0秒到 现在的毫秒数?

-如何取得某月的最后一天?如何格式化日期?

-如何格式化日期?

public
static void main(String[] args) throws ParseException {

Calendar now =
Calendar.getInstance();

System.out.println("年: " + now.get(Calendar.YEAR));

System.out.println("月: " + (now.get(Calendar.MONTH) + 1) + "");

System.out.println("日: " + now.get(Calendar.DAY_OF_MONTH));

System.out.println("时: " + now.get(Calendar.HOUR_OF_DAY));

System.out.println("分: " + now.get(Calendar.MINUTE));

System.out.println("秒: " + now.get(Calendar.SECOND));

System.out.println("当前时间毫秒数:" + now.getTimeInMillis());

Date d = new Date();

System.out.println(d);

SimpleDateFormat sdf = new
SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String dateNowStr = sdf.format(d);

System.out.println("格式化后的日期:" + dateNowStr);

String lastDay = getLastDayOfMonth(2014,
5);

System.out.println("获取当前月的最后一天:" + lastDay);

}

public static
String getLastDayOfMonth(int year, int month) {

Calendar
cal = Calendar.getInstance();

//
设置年份

cal.set(Calendar.YEAR,
year);

//
设置月份

cal.set(Calendar.MONTH,
month - 1);

//
获取某月最大天数

int
lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

//
设置日历中月份的最大天数

cal.set(Calendar.DAY_OF_MONTH,
lastDay);

//
格式化日期

SimpleDateFormat
sdf = new SimpleDateFormat("yyyy-MM-dd");

String
lastDayOfMonth = sdf.format(cal.getTime());

return
lastDayOfMonth;

}

public
static void main(String[] args) throws ParseException {

String
lastDay = getLastDayOfMonth(2014, 5);

System.out.println("获取当前月的最后一天:" + lastDay);

}

14、求从1到100中能被3或5整除的数的和(写出代码)

public class Test01 {

public static void main(String[] args) {

int sum = 0;

for (int i = 1; i <= 100; i++) {

if (i % 3 == 0 || i % 5 == 0) {

sum +=
i;

}

}

System.out.println(sum);

}

}

结果是:2418

15、同最有效率的方法算出2乘以8等于几?(写出代码)

class Test{
public static void main(String[] args)  {
   //最有效率的方式算出2乘以8等于几?
  System.out.println(2<<3);
}

}

结果是:16

java面试题11的更多相关文章

  1. Java面试题(全)--视频系列

    此系列为面试笔试题的视频讲解,以下均为超链接,点击即可进入每个知识点的讲解. Java面试题01.面试的整体流程 Java面试题02.java的垮平台原理 Java面试题03.搭建一个java的开发环 ...

  2. java面试题系列11

    华为的JAVA面试题 QUESTION NO: 1 publicclass Test1 {       publicstaticvoid changeStr(String str){         ...

  3. 剑指offer编程题Java实现——面试题11数值的整数次方

    题目: 实现函数double power(double base,int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 解题思路:最一般的方法实现数值 ...

  4. java面试题及答案(转载)

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...

  5. Java面试题(全)

    JAVA部分 什么是反射机制?反射机制应用(Struts中反射机制的应用) 答:运行状态中,对于任意一个类,都可以知道它的所有属性和方法,对于任意一个对象都可以调用它的任意一个方法,这种动态获取信息以 ...

  6. Java面试题大全(四)

    JAVA代码查错 1. abstract class Name { private String name; public abstract boolean isStupidName(String n ...

  7. 大公司的Java面试题集

    找工作要面试,有面试就有对付面试的办法.以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司. 面试 ...

  8. 收集了50道基础的java面试题

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

  9. Java笔试题解答和部分面试题

    面试类  银行类的问题 问题一:在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? HashMap本身没有什么问题,有没有问题取决于你是如何使用它的.比如,你 ...

随机推荐

  1. 对Spring Bean了解一二

    这之前从未听说过Spring Bean,今天因为学习的<Java核心36讲>其中一篇涉及到了这个内容,因自己基础薄弱,杨晓峰老师讲的内容需要一定的基础才能看懂,故在网上搜罗一些我能理解的关 ...

  2. validform校验框架不显示错误提示

    今天做前端的校验,发现validform这个框架在项目中有,于是就网上搜索一下,开始使用,网上说,嗯,只写一句代码就可以用啦 $("#itemForm").Validform(); ...

  3. 微信小程序:WXSS 样式

    微信小程序:WXSS 样式 一.WXSS 样式 XSS 具有 CSS 大部分的特性,小程序在 WXSS 也做了一些扩充和修改. 1,新增了尺寸单位: 在写 CSS 样式时,开发者需要考虑到手机设备的屏 ...

  4. 20145219《网络对抗技术》PC平台逆向破解之逆向与Bof基础

    20145219<网络对抗技术>PC平台逆向破解之逆向与Bof基础 实践目标 实践对象:一个名为pwn1的linux可执行文件. pwn1正常执行流程:main调用foo函数,foo函数会 ...

  5. kali_常用软件记录

    可参考:http://www.lvzejun.cn/2015/03/31/ubuntu-software/ 录屏软件 http://www.kohaupt-online.de/hp/ http://l ...

  6. BZOJ 3930 【CQOI2015】 选数

    题目链接:选数 这种SB题我都Wa飞了,彻底没救系列- 首先,我们可以发现1,如果我们选了两个不同的数,那么它们的\(\gcd\)不会超过\(r-l+1\).于是,我们可以设一个\(f_i\)表示任取 ...

  7. 51nod 1040 最大公约数的和 欧拉函数

    1040 最大公约数之和 题目来源: rihkddd 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 给出一个n,求1-n这n个数,同n的最大公约数 ...

  8. key寻址算法

    分布式寻址算法 hash 算法(大量缓存重建) 一致性 hash 算法(自动缓存迁移)+ 虚拟节点(自动负载均衡) redis cluster 的 hash slot 算法 hash 算法 来了一个 ...

  9. zookeeper和Eureka对CAP理论的支持

    著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性).A(可用性)和P(分区容错性).由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡.在此Zookeeper保证 ...

  10. JavaScript之搜索框

    啧啧啧,又到月末了,时间过的真的好快啊︿( ̄︶ ̄)︿现在没课上,天天宅在寝室就这么三件事:吃饭睡觉打豆豆.真感无所事事,无聊至极!突然好怀念那些上课的日子啊!至少不像现在,生活状态全部都搅乱了:以前可 ...