说明:本文只是自己的一些心得体会,答案也是自己写的,正确与否,还需考证

java笔试题

    1java笔试题1

启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18,19,20….以此类推,知道 打印到75.

package bishi.thread1;

/**
* 启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18,19,20….以此类推,知道 打印到75.
*/
public class ThreadTest {
static int i = 0; public static void main(String[] args) {
Thread1 thread1 = new Thread1();
Thread2 thread2 = new Thread2();
Thread3 thread3 = new Thread3(); thread1.setName("线程一:");
thread2.setName("线程二:");
thread3.setName("线程三:"); thread1.start();
thread2.start();
thread3.start();
}
} class Thread1 extends Thread {
public void run() {
while (ThreadTest.i < 75) {
synchronized (ThreadTest.class) { // 注意不能这么写,synchronized (ThradTest.i),因为i是一个变量而不是一个对象
if (ThreadTest.i < 75) {
if (ThreadTest.i % 15 == 0) {
for (int i = 1; i < 6; i++) {
System.out.println(Thread.currentThread().getName() + ++ThreadTest.i);
}
}
}
}
}
}
} class Thread2 extends Thread {
public void run() {
while (ThreadTest.i < 75) {
synchronized (ThreadTest.class) { // 注意不能这么写,synchronized (ThradTest.i),因为i是一个变量而不是一个对象
if (ThreadTest.i < 75) {
if ((ThreadTest.i - 5) % 15 == 0) {
for (int i = 1; i < 6; i++) {
System.out.println(Thread.currentThread().getName() + ++ThreadTest.i);
}
}
}
} }
}
} class Thread3 extends Thread {
public void run() {
while (ThreadTest.i < 75) {
synchronized (ThreadTest.class) { // 注意不能这么写,synchronized (ThradTest.i),因为i是一个变量而不是一个对象
if (ThreadTest.i < 75) {
if ((ThreadTest.i - 10) % 15 == 0) {
for (int i = 1; i < 6; i++) {
System.out.println(Thread.currentThread().getName()+ ++ThreadTest.i);
}
System.out.println();
}
}
}
}
}
}

执行结果

D:\java\jdk\jdk1.7\installpath\bin\java "-javaagent:D:\tool\idea\installpath\IntelliJ IDEA 2017.3.2\lib\idea_rt.jar=62126:D:\tool\idea\installpath\IntelliJ IDEA 2017.3.2\bin" -Dfile.encoding=UTF-8 -classpath D:\java\jdk\jdk1.7\installpath\jre\lib\charsets.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\deploy.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\ext\access-bridge-64.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\ext\dnsns.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\ext\jaccess.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\ext\localedata.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\ext\sunec.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\ext\sunjce_provider.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\ext\sunmscapi.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\ext\zipfs.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\javaws.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\jce.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\jfr.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\jfxrt.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\jsse.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\management-agent.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\plugin.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\resources.jar;D:\java\jdk\jdk1.7\installpath\jre\lib\rt.jar;E:\javaweb\zijide\test\out\test\test;E:\javaweb\zijide\test\lib\axis-ant.jar;E:\javaweb\zijide\test\lib\axis.jar;E:\javaweb\zijide\test\lib\cglib.jar;E:\javaweb\zijide\test\lib\commons-discovery-0.2.jar;E:\javaweb\zijide\test\lib\commons-logging-1.0.4.jar;E:\javaweb\zijide\test\lib\jaxrpc.jar;E:\javaweb\zijide\test\lib\log4j-1.2.17.jar;E:\javaweb\zijide\test\lib\junit-4.8.2.jar bishi.thread1.ThreadTest
线程一:1
线程一:2
线程一:3
线程一:4
线程一:5
线程二:6
线程二:7
线程二:8
线程二:9
线程二:10
线程三:11
线程三:12
线程三:13
线程三:14
线程三:15 线程一:16
线程一:17
线程一:18
线程一:19
线程一:20
线程二:21
线程二:22
线程二:23
线程二:24
线程二:25
线程三:26
线程三:27
线程三:28
线程三:29
线程三:30 线程一:31
线程一:32
线程一:33
线程一:34
线程一:35
线程二:36
线程二:37
线程二:38
线程二:39
线程二:40
线程三:41
线程三:42
线程三:43
线程三:44
线程三:45 线程一:46
线程一:47
线程一:48
线程一:49
线程一:50
线程二:51
线程二:52
线程二:53
线程二:54
线程二:55
线程三:56
线程三:57
线程三:58
线程三:59
线程三:60 线程一:61
线程一:62
线程一:63
线程一:64
线程一:65
线程二:66
线程二:67
线程二:68
线程二:69
线程二:70
线程三:71
线程三:72
线程三:73
线程三:74
线程三:75 Process finished with exit code 0

      2java笔试题2,面试也问答过

spirng的三大核心思想,并简单描述       

              aop即面向切面编程:通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。日志,前置通知,后置通知,返回通知,异常通知,事务拦截器。
ioc即控制反转:容器主动地将资源推送给它所管理的组件, 组件所要做的仅是选择一种合适的方式来接受资源。
DI依赖注入:组件以一些预先定义好的方式(例如: setter 方法)接受来自如容器的资源注入。有属性注入和构造器注入两种方式。

3java笔试题3

JAVA随机输出10个数不重复并且按顺序从小到大排列

package bishi.suiji;

import org.junit.Test;

/**
* JAVA随机输出10个数不重复并且按顺序从小到大排列.
* */
public class RandomTest {
static int[] ary = new int[1000]; // 默认给ary数组里每一个数的初始值都为零 @Test
public void test2() {
int flag=1; while (flag<10) { // 获取到十个不重复的数
int random =(int)(Math.random()*1000); // 从[0,1000)中获取一个的随机数
if (ary[random] == 0) { // 判断是否重复,这里利用桶排序的方式来判断
ary[random]++;
flag++; // 每获取一个不重复的数,就加一
}
} for (int j = 0; j < ary.length; j++) {
if (ary[j] !=0) {
System.out.println(j);
}
}
}
}

输出结果

202
263
279
326
386
486
527
887
955
  1.  js笔试题2

js实现一个打点计时器,问题描述:

1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅 1 
                       2、返回的对象中需要包含一个 cancel 方法,用于停止定时操作 
                      3、第一个数需要立即输出

<html>
<body>
<script>
function count(start, end) {
//立即输出第一个值
console.log(start++);
var timer = setInterval(function(){
if(start <= end){
console.log(start++);
}else{
clearInterval(timer); // 停止timer计数器
}
},100); // 每隔100毫秒执行一次 //返回函数名为cancel的函数
return {
cancel : function(){
clearInterval(timer);
}
};
} count(0,100); // 调用计数器
</script>
</body>
</html>

      

   4java笔试题4

    如下代码执行结果是多少?为什么?

package pri.lsx.test.mianshiti;

public class Test {
public volatile int inc = 0; public void increase() {
inc++;
} public static void main(String[] args) {
final Test test = new Test();
for (int i = 0; i < 10; i++) {
new Thread() {
public void run() {
for (int j = 0; j < 1000; j++)
test.increase();
}
}.start();
}
while(Thread.activeCount()>1){
Thread.yield();
} System.out.println(test.inc);
}
}

    执行结果如下

项目会一直运行下去,并且什么内容也不会输出

因为Thread.activeCount()的值一直会大于1。

5hashMap是线程安全的吗?为什么?currentHashMap是线程安全的吗?为什么

6多线程实现几种方式是什么?    有哪些方法可以实现线程同步?

1面试题

1你有什么优点

我觉得我所学的知识,和你们的招聘要求比较符合

2你有什么缺点

 自己的阅历不够丰富
不太喜欢喝那种只会吹牛合作

3我为什么录用你

我觉得我所学的知识,和你们的招聘要求比较符合

4能不能接受加班

HR最想知道的问题是

1.遇到工作与生活的冲突时,如何权衡,如何处理。

2.对工作的态度。

3.思考问题的方式。

可以这样回答,对于加班后可以调休的情况。

加班可以调休我觉得这没什么问题,休息日也不应该就是玩,还应该学习自己感兴趣的东西。反正自己在家学习和工作也没什么区别。

5能不能接受出差

考官提出这个问题,并不是真的想问你喜不喜欢出差,工作需要时,你不喜欢出差也得出。主要是想了解你的家人,或者你的恋人对你的工作持何种态度。

可以接受出差,因为之前工作没有出差一直都没有机会去各个地方看看,而且出差可以和不同的人就流能在短时间内提升自己的工作能力。对于家人,我是外地人,去哪儿上班都一样。对于女朋友,我现在单身。

6能不能做外包

7什么是堆什么什么是栈

堆和栈都是内存存放数据的地方,但是他们存储变量的类型不一样。

栈内存主要用来存放基本数据类型变量与引用类型变量。相较于堆,栈内存的存取速度更快,但栈的大小和周期必须确定。因此缺乏一定的灵活性

堆内存用来存放运行时创建的对象。是在运行时动态的分配内存,生存期不用提前告诉编译器,但这也导致了其存取速度缓慢。

额外说明下:常量池也是内存用来存放数据的地方,用来存放字符串常量和基本数据类型常量。

8说一下你对jvm的理解

7说一下你对sping的理解

9对分布式那一块了解吗

10简单工厂模式适合什么场景,工厂方法模式适合什么场景,什么是抽象工厂模式

1、简单工厂模式:

(1)工厂类负责创建的对象比较少,由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。

(2)客户端只知道传入工厂类的参数,对于如何创建对象并不关心。

2、工厂方法模式

(1)客户端不知道它所需要的对象的类。

(2)抽象工厂类通过其子类来指定创建哪个对象。
---------------------
作者:听说你是吴彦祖
来源:CSDN
原文:https://blog.csdn.net/qq_37221396/article/details/78361425
版权声明:本文为博主原创文章,转载请附上博文链接! 什么是抽象工厂,以及符合开闭原则的简单工厂模式这两个问题暂时不讨论。

11如何跟踪线程是否执行完毕

1:Thread类中有个方法可以查看当前线程的活跃数
2:如果线程里面的代码正常执行完,那么线程就自动结束了
如果有stop方法调用,也会自动结束
3:如果线程是在线程池中运行,那么可以直接使用已有的api查看线程池中当前活跃的线程数
以及在队列中的线程数目。 4:如果要你自己写一个跟踪线程是否执行完毕的代码怎么写
我目前只是试了下这个方法觉得可行。 可以自定义一个变量,通过这个变量的值变化就可以确定线程是否执行完毕

12单例模式的创建方式之一双检索,有什么缺陷吗

https://blog.csdn.net/lsx2017/article/details/84966812

13volatile关键字理解

https://blog.csdn.net/lsx2017/article/details/84967568

java面试笔试总结(一)--亲生经历的面试题的更多相关文章

  1. java面试笔试大汇总

    java面试笔试题大汇总5 JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象:2.继承:3.封装:4. 多态性: 2.String是最基本的数据类型吗? 基本数据类型包括byte.int. ...

  2. Java面试集合(三)-30道面试题

    前言 大家好,我是 Vic,今天给大家带来Java面试集合(三)的概述,希望你们喜欢 三 1.在Java中是否可以含有多个类?答:可以含有多个类,但只有一个是public类,public类的类名与文件 ...

  3. 2019 头条java面试笔试总结 (含面试题解析)

       本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条等公司offer,岗位是Java后端开发,因为发展原因最终选择去了头条,入职一年时间了,也成为了面试官,之前面 ...

  4. 2019 京东java面试笔试总结 (含面试题解析)

       本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.京东等公司offer,岗位是Java后端开发,因为发展原因最终选择去了京东,入职一年时间了,也成为了面试官, ...

  5. 2019 滴滴java面试笔试总结 (含面试题解析)

       本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是Java后端开发,因为发展原因最终选择去了滴滴,入职一年时间了,也成为了面试官, ...

  6. 2019 阿里java面试笔试总结 (含面试题解析)

       本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.滴滴等公司offer,岗位是Java后端开发,因为发展原因最终选择去了阿里,入职一年时间了,也成为了面试官, ...

  7. java面试笔试

    一.String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? String在Java中是final的类,所以不可变:StringBuffer是 ...

  8. java面试笔试试题http://www.jobui.com/mianshiti/it/java/6827/

    一.判断题(每题1分,共10分)1.Applet是一种特殊的Panel,它是Java Applet程序的最外层容器.()2.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码 ...

  9. java面试笔试谈

    例一: public class Inc { public static void main(String[] args) { Inc inc=new Inc(); int i=5; inc.ferm ...

随机推荐

  1. mssql注入中的储存用法删除与恢复

    删除: use master exec sp_dropextendedproc 'xp_cmdshell' exec sp_dropextendedproc 'xp_enumgroups' exec ...

  2. humble_USACO

    Humble Numbers For a given set of K prime numbers S = {p1, p2, ..., pK}, consider the set of all num ...

  3. Linux汇编教程03:大小比较操作

    我们在上一讲中,简单了解了汇编程序大概的样子.接下来我们来了解一下,汇编程序的大小比较操作.所以我们以编写寻找一堆数中的最大值作为学习的载体. 在编写程序之前,先要分析我们的目的,在得出解决方案. 目 ...

  4. Linux汇编教程01: 基本知识

    在我们开始学习Linux汇编之前,需要简单的了解一下计算机的体系结构.我们不需要特别深入的了解,理解了一些基本概念对与我们理解程序会很有帮助.现在计算机的结构体系都是采用冯诺依曼体系结构的基础上发展过 ...

  5. 安全测试===sqlmap(贰)转载

    十二.列举数据 这些参数用于列举出数据库管理系统信息.数据结构和数据内容. 1.一键列举全部数据 参数:--all 使用这一个参数就能列举所有可访问的数据.但不推荐使用,因为这会发送大量请求,把有用和 ...

  6. 使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程

    使用IDA PRO+OllyDbg+PEview 追踪windows API 动态链接库函数的调用过程 http://blog.csdn.net/liujiayu2/article/details/5 ...

  7. 快速排序算法的c++实现

    很早以前看过快排算法觉得自己掌握了,,课今天用的时候发现老出错,认真想想发现自己一直搞错了... 下面先说一下我的想法: 首先,快排的思想就是 从数列中挑出一个元素,称为 "基准" ...

  8. 【sam复习】用sam实现后缀排序

    没错,一定是无聊到一定境界的人才能干出这种事情. 这个无聊的zcysky已经不满足于用后缀平衡树求sa了,他想用sam试试. 我们回顾下sam的插入过程,如果我们从最后一个state沿着suffix ...

  9. js-xlsx操作excel表格

    1导入与导出功能实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  10. python 作业

    Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...