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

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. hdu 1863 畅通工程 (并查集+最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863 畅通工程 Time Limit: 1000/1000 MS (Java/Others)    M ...

  2. splay:优雅的区间暴力!

    万年不更的blog主更新啦!主要是最近实在忙,好不容易才从划水做题的时间中抽出一段时间来写这篇blog 首先声明:这篇blog写的肯定会很基础...因为身为一个蒟蒻深知在茫茫大海中找到一个自己完全能够 ...

  3. 【DLL】动态库的创建,隐式加载和显式加载(转)

    原文转自:https://blog.csdn.net/dcrmg/article/details/53437913

  4. spin_USACO

    Spinning Wheels1998 ACM NE Regionals Each of five opaque spinning wheels has one or more wedges cut ...

  5. 移动端测试===Android内存泄露和GC机制(转)

    本文转自:https://www.testwo.com/article/1153 1.前言 Hello,小伙伴们,相信大家在项目测试中都遇到过内存泄露问题,小编也着实爬过很多坑.比如小编所测项目,更换 ...

  6. 如何用jQuery获得radio的值

    如何获得radio的值,在网上查了一下,下面总结几种解决方法,. 1.获取选中值: $('input:radio:checked').val(): $("input[type='radio' ...

  7. HTML5API(5)

    一.SVG 1.svg与canvas的区别 canvas绘制的是位图,svg绘制的是矢量图 canvas使用JavaScript绘制,svg使用xml绘制 canvas不能给每个图形绑定事件,svg可 ...

  8. python安装基础

    . python安装 //先查看是否存在python的包,如果没有,那可以用yum或去python的官网安装 [root@localhost ~]# rpm -qa|grep python pytho ...

  9. .NET Core 2.0.5安装具体步骤

    .NET Core 2.0.5 comprises: .NET Core Runtime 2.0.5 .NET Core SDK 2.1.4   SDK Installer SDK Binaries ...

  10. .vue,跟小程序文件在sublime里面怎么实现代码格式化

    .vue文件跟小程序的.wxml,.wxss用sublime的HTML/CSS/JS prettify插件也可以实现格式化代码的效果 首先你在sublime要已经安装好了HTML/CSS/JS pre ...