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

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. python基础===codecs打开文件,解决文件编码格式的问题

    codecs https://docs.python.org/3/library/codecs.html 我们经常用open打开文件的时候会出现各式各样的错误,编码格式的问题,等等~真的很烦 现在尽量 ...

  2. Shell脚本中引用、调用另一个脚本文件的2种方法

    Shell脚本中引用.调用另一个脚本文件的2种方法 http://www.jb51.net/article/67903.htm

  3. .net爬虫了解一下

    using System; //添加selenium的引用 using OpenQA.Selenium.PhantomJS; using OpenQA.Selenium.Chrome; using O ...

  4. sicily 1046. Plane Spotting

    1046. Plane Spotting Time Limit: 1sec    Memory Limit:32MB  Description Craig is fond of planes. Mak ...

  5. 剑指offer-高质量的代码

    小结: 规范性:书写清晰.布局清晰.命名合理 完整性:完成基本功能.考虑边界条件.做好错误处理 鲁棒性:采取防御性编程.处理无效输入 面试这需要关注 输入参数的检查 错误处理和异常的方式(3种) 命名 ...

  6. 【VI Script】你不知道的脚本编程

    前言 近期,小黑在写程序的时候,经常会遇到一些重复性的工作.尤其是在写到QMH(Queued Message Handler)程序时,经常需要创建UI界面上的一些控件引用,并且在程序中捆绑成簇使用. ...

  7. 怎么删除Windows服务

    1,首先找到服务名字. 2,在cmd中进到c:下面 3,sc delete 名字. 删除成功

  8. awk处理之案例五:awk匹配字段2包含字段1的文本

    编译环境 本系列文章所提供的算法均在以下环境下编译通过. [脚本编译环境]Federa 8,linux 2.6.35.6-45.fc14.i686 [处理器] Intel(R) Core(TM)2 Q ...

  9. Mybatis学习—XML配置文件

    总结自 Mybatis官方中文文档 XML 映射配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息.文档的顶层结构如 ...

  10. LeetCode解题报告——Convert Sorted List to Binary Search Tree & Populating Next Right Pointers in Each Node & Word Ladder

    1. Convert Sorted List to Binary Search Tree Given a singly linked list where elements are sorted in ...