首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JAVA程序员面试30问(附带答案)

因此一个类不能既被声明为 abstract,又被声明为final。将变量或方法声明为final,可以保证它们使用中不被改变。...搞线程最爱。sleep()方法是使线程停止一段时间方法。sleep 时间间隔期满,线程不一定立即恢复执行。...类实现特殊接口定义(即将程序体给予)所有这种接口方法。然后,它可以实现了该接口任何对象上调用接口方法。由于有抽象类,允许使用接口名作为引用变量类型。通常动态联编将生效。...第三十,一个对象被当作参数传递到一个方法,此方法可改变这个对象属性,并可返回变化结果,那么这里到底是传递还是引用传递? 是传递。Java 编程语言只由传递参数。...一个对象实例作为一个参数被传递到方法中,参数就是对该对象引用。对象内容可以在被调用方法中改变,但对象引用是永远不会改变

38620

创建自动滑雪模拟器

幸运是,雪是一个非常自动驾驶车辆环境,因为它是完全白色,必须从树木和障碍物中确定,这些树木和障碍物大多是黑色或比灰色更暗。...因此首先讨论想要实现内容。 ? 折叠位置 (按W)。如果这种情况持续一段时间(假设连续10帧),就开始进入褶皱状态(按下左移)。角度(-7,7)范围内,继续折叠位置移动。...但是如果得到航行角度低于或高于之前((-15,-7),(7,15)),会根据角度转向并慢慢停止滑雪者并重置状态,这意味着减少开始决定速度从开始,使用带有极点运动。...如果在连续10帧之后没有大角度变化,就会改变滑雪者状态,然后进入低位。名称为tuck变量定义状态,tuck为0,使用极点向前移动,但是它为2,意味着滑雪者处于折叠位置。...每个函数调用上检查此速度。如果变得大于某个例子中为5),会减慢滑雪者速度。 这是滑雪者端到端决策步骤,效果非常,这是一个小演示。 ? ?

65720
您找到你想要的搜索结果了吗?
是的
没有找到

踩过坑之mysql连接报“Communications link failure”错误

过了一段时间,我通过controller路径去访问(刚启动tomcat,是可以访问拿到数据),过了一段时间,就开始报Communications link failure 连接错误了 ?...=2147483 , 因为帖子里说是默认配置不改变情况下,如果连续8小内都没有访问数据库操作,再次访问mysql数据库时候,mysql数据库会拒绝访问,于是那就加上吧 ?...加了之后呢,又开始测,过了一段时间,还是报Communications link failure 错误,这下彻底凉了,于是继续翻看着, 终于一个默默无闻帖子里看到了一个解决方案 ---- 第三种方法...-- 默认是 flase, 从把该连接放回到连接池,验证这个连接是否有效 --> ...-- 执行检查超时设置,通过statement 设置,statement.setQueryTimeout(validationQueryTimeout) --> <property name

115.4K43

2021Java就业笔试题总结

15、一个对象被当作参数传递到一个方法,此方法可改变这个对象属性,并可返回变化结果,那么这里到底是传递还是引用传递?...搞线程最爱。sleep()方法是使线程停止一段时间方法。sleep 时间间隔期满,线程不一定立即恢复执行。...类实现特殊接口定义(即将程序体给予)所有这种接口方法。然后,它可以实现了该接口任何对象上调用接口方法。由于有抽象类,允许使用接口名作为引用变量类型。通常动态联编将生效。...会执行,return前执行。这个问题遇到较多。  15、一个对象被当作参数传递到一个方法,此方法可改变这个对象属性,并可返回变化结果,那么这里到底是传递还是引用传递? 是传递。...Java 编程语言只有传递参数。一个对象实例作为一个参数被传递到方法中,参数就是对该对象引用。对象内容可以在被调用方法中改变,但对象引用是永远不会改变

40020

mysql connection failed(mysql mvcc)

,(我用是mysql,至于oracle有没有这样问题,有心小伙伴们可以测试一下哈), 自己做个javaweb测试项目的时候,因为买是云服务器,所以数据库连接是用ip地址,用IDE开发好,于是部署到远程云服务器上...=2147483 , 因为帖子里说是默认配置不改变情况下,如果连续8小内都没有访问数据库操作,再次访问mysql数据库时候,mysql数据库会拒绝访问,于是那就加上吧 加了之后呢,又开始测,...过了一段时间,还是报Communications link failure 错误,这下彻底凉了,于是继续翻看着, 终于一个默默无闻帖子里看到了一个解决方案 ---- 第三种方法(适用于项目和数据库同一台服务器...-- 默认是 true ,从连接池取连接,验证这个连接是否有效 -->

55420

Java面试题合集

答:sleep()方法是使线程停止一段时间方法。sleep 时间间隔期满,线程不一定立即恢复执行。...接口实现与子类相似,除了该实现类不能从接口定义中继承行为。类实现特殊接口定义(即将程序体给予)所有这种接口方法。然后,它可以实现了该接口任何对象上调用接口方法。...答:不对,有相同hash code 31.一个对象被当作参数传递到一个方法,此方法可改变这个对象属性,并可返回变化结果,那么这里到底是传递还是引用传递? 答:是传递。...Java 编程语言只由传递参数。一个对象实例作为一个参数被传递到方法中,参数就是对该对象引用。对象内容可以在被调用方法中改变,但对象引用是永远不会改变。...一般Singleton模式通常有几种种形式: 第一种形式: 定义一个类,构造函数为private,它有一个staticprivate该类变量类初始化时实例话,通过一个publicgetInstance

759100

Java大型互联网公司经典面试题,论JDK源码重要性无限思考

使用直接指针访问方式最大好处就是速度更快,节省了一次指针定位时间开销,由于对象访问 Java 中非常频繁,因此这类开销积少成多也是一项非常可观执行成本。...那么,按传递意味着将当前参数传递给方法时候,方法中变量接收是传过来变量副本(相当于拷贝了一份),因此,我们修改了方法里面的变量,并不会改变外面变量。...通过swap方法:意味着,会同样创建两个变量num1和num2,他们是刚刚拷贝过来ab,此时内存中怎么变化呢: ?...然后我们发现这个value定义是final类型: ? 如果他有一个setValue()方法的话,那么我们是是不是可以通过这个方法来改变,但是Integer并没有提供。...我们再回过头来看看外面的方法,检查一下,我们定义了: ? 有没有发现什么问题? Integer是不是一个封装类型,而他1,2,是不是一个int类型,是一个基本数据类型,那么这里是怎么赋值呢?

1K10

【死磕Java并发】—- 深入分析CAS

这里写图片描述 CAS分析 CAS中有三个参数:内存V、旧预期A、要更新B,且仅内存V等于旧预期A才会将内存V修改为B,否则什么都不干。...总线加锁:总线加锁就是就是使用处理器提供一个LOCK#信号,一个处理器总线上输出此信号,其他处理器请求将被阻塞住,那么该处理器可以独占使用共享内存。...例如读写锁中state高地位 ABA问题 CAS需要检查操作有没有发生改变,如果没有发生改变则更新。...但是存在这样一种情况:如果一个原来是A,变成了B,然后又变成了A,那么CAS检查时候会发现没有改变,但是实质上已经发生了改变,这就是所谓ABA问题。...AtomicStampedReference中,大多方法都是通过调用Pairof方法来产生一个Pair对象,然后赋值给变量pair。

740110

面了十多家,总结出20道JavaScript 必考面试题!

因此,使用 for...in 循环,可以使用 hasOwnProperty() 方法来判断一个属性是否为对象自身属性 for…of: 用来遍历一个可迭代对象(iterable object)中元素...bind() 作用与call()和apply()一样,都是可以改变函数运行时上下文,区别是call()和apply()调用函数之后会立即执行,而bind()方法调用并改变函数运行时上下文,返回一个函数...什么是闭包,使用场景 闭包是指有权访问另外一个函数作用域中变量函数;一个嵌套函数引用了其外层函数变量或者参数,就形成了一个闭包。...如果在时间间隔内有新调用,则重新计时。 输入框搜索:当用户输入框中连续输入字符,使用防抖可以避免每次输入都触发搜索请求,而是在用户停止输入一段时间才触发搜索请求,减少不必要请求。...窗口调整:窗口大小调整,使用防抖可以确保调整完成才执行相应操作,避免频繁触发操作。 按钮点击:当用户频繁点击按钮,使用防抖可以确保只有最后一次点击有效,避免误操作或重复操作。

17830

【死磕Java并发】—-深入分析CAS

CAS分析 CAS中有三个参数:内存V、旧预期A、要更新B,且仅内存V等于旧预期A才会将内存V修改为B,否则什么都不干。...总线加锁:总线加锁就是就是使用处理器提供一个LOCK#信号,一个处理器总线上输出此信号,其他处理器请求将被阻塞住,那么该处理器可以独占使用共享内存。...例如读写锁中state高地位 ABA问题 CAS需要检查操作有没有发生改变,如果没有发生改变则更新。...但是存在这样一种情况:如果一个原来是A,变成了B,然后又变成了A,那么CAS检查时候会发现没有改变,但是实质上已经发生了改变,这就是所谓ABA问题。...AtomicStampedReference中,大多方法都是通过调用Pairof方法来产生一个Pair对象,然后赋值给变量pair。

59250

死磕Java并发:深入分析CAS

1、CAS分析 CAS中有三个参数:内存V、旧预期A、要更新B,且仅内存V等于旧预期A才会将内存V修改为B,否则什么都不干。...总线加锁 总线加锁就是就是使用处理器提供一个LOCK#信号,一个处理器总线上输出此信号,其他处理器请求将被阻塞住,那么该处理器可以独占使用共享内存。...例如读写锁中state高地位 ABA问题 CAS需要检查操作有没有发生改变,如果没有发生改变则更新。...但是存在这样一种情况:如果一个原来是A,变成了B,然后又变成了A,那么CAS检查时候会发现没有改变,但是实质上已经发生了改变,这就是所谓ABA问题。...AtomicStampedReference中,大多方法都是通过调用Pairof方法来产生一个Pair对象,然后赋值给变量pair。

34920

LLDP协议原理

LLDP定义802.1ab中,它是一个二层协议,提供了一种标准链路层发现方式。...为了避免端口工作模式频繁改变而导致端口不断执行初始化操作,可配置端口初始化延迟时间,端口工作模式改变延迟一段时间再执行初始化操作。...但为了防止本地信息频繁变化而引起LLDP报文大量发送,每发送一个LLDP报文都需延迟一段时间再继续发送下一个报文。...1秒,并连续发送指定数量LLDP报文再恢复为正常发送周期。...2.LLDP报文接收机制 端口工作TxRx或Rx模式,设备会对收到LLDP报文及其携带TLV进行有效性检查,通过检查再将邻居信息保存到本地,并根据TTL(Time To Live,生存时间

89620

Java线程面试题 Top 50

JDK 1.0本来有一些像stop(), suspend() 和 resume()控制方法但是由于潜在死锁威胁因此在后续JDK版本中他们被弃用了,之后Java API设计者就没有提供一个兼容且线程安全方法来停止一个线程...这又是一个刁钻问题,因为多线程可以等待单监控锁,Java API 设计人员提供了一些方法等待条件改变时候通知它们,但是这些方法没有完全实现。...当中断线程调用静态方法Thread.interrupted()来检查中断状态,中断状态会被清零。而非静态方法isInterrupted()用来查询其它线程中断状态且不会改变中断状态标识。...因此,一个等待线程醒来时,不能认为原来等待状态仍然是有效notify()方法调用之后和等待线程醒来之前这段时间它可能会改变。...其实是一个用来创建线程安全单例老方法,单例实例第一次被创建试图用单个锁进行性能优化,但是由于太过于复杂JDK1.4中它是失败,我个人也不喜欢

1.1K20

C#开发面试题_程序员面试题精选100题

equals()和==方法决定引用是否指向同一对象equals()类中被覆盖,为两个分离对象内容和类型相配的话,返回真值。 44.数组有没有length()这个方法?...答:sleep()方法是使线程停止一段时间方法。sleep 时间间隔期满,线程 不一定立即恢复执行。...因此一个类不能既被声明为 abstract,又被 声明为final。将变量或方法声明为final,可以保证它们使用中 不被改变。...5.HTML中,可以拥有不带属性名。XML中,所有的属性都必须带有相应 。 75.c#中三元运算符是? 答:?:。 76.整数a赋值给一个object对象,整数a将会被?...接口实现与子类相似,除了该实现类不能从接口定义中继承行为。类实现特殊接口定义(即将程序体给予)所有这种接口方法。然后,它可以实现了该接口任何对像上调用接口方法。

99630

深入理解双向绑定

比如在Vue中,改变实例中data,页面便对应改变,当我们主动改变页面上,再去检查实例中data,也相应发生了改变。...首先,理解了上面关于双向绑定含义,请停一下,花几分钟思考一下,如果让你去实现一个双向绑定,请理一下自己思路,继续往下阅读,看看我们思想有没有碰撞。...页面中,接口返回,先将内存变量赋值,再将页面某一个dom要展示value重新设置一下。...手动改变页面上domvalue,同时将之前申请内存里变量再做一次赋值操作,这样便可以完成两块内容同步。...具体操作,改变内存中某个变量A变化前,由于B想要跟A同步,B即需要监听A是否变化,则需要一个主动轮询检查AB内容是否一致,一旦变化则更新B,从而达到AB一致性。

85710

JS函数防抖

简介 防抖(debounce)函数许多场景中都非常有用,比如用户搜索框中输入文本,我们可能不想立即处理用户输入,而是希望在用户停止输入一段时间再进行处理。...使用JS防抖函数前提条件主要有以下几点: 有频繁事件触发 :如果你有一个事件,如用户输入、窗口大小改变、滚动事件等,这些事件频繁地触发,而你希望事件停止一段时间内只处理一次,那么防抖函数就非常有用...延迟响应需求 :有时候,我们希望在用户停止触发事件,再进行响应。比如用户搜索框中输入文本,我们可能希望在用户停止输入一段时间再发送请求,这样可以避免不必要请求,提高性能。...// 声明一个变量timeoutId,用于存储setTimeout返回定时器ID,初始为null let timeoutId; // 返回一个函数,该函数作为debounce...设置一个定时器,延迟时间执行func函数 // 延迟期间内再次触发返回函数,会清除之前定时器并重新设置,以确保只有最后一次触发才会等待延迟时间结束执行func

11120

Java线程面试题合集(含答案)

因此在后续JDK版本中他们被弃用了,之后Java API设计者就没有提供一个兼容且线程安全方法来停止一个线程。...因此,一个等待线程醒来时,不能认为原来等待状态仍然是有效notify()方法调用之后和等待线程醒来之前这段时间它可能会改变。...其实是一个用来创建线程安全单例老方法,单例实例第一次被创建试图用单个锁进行性能优化,但是由于太过于复杂JDK1.4中它是失败。...int++并不是一个原子操作,所以一个线程读取并加1,另外一个线程有可能会读到之前,这就会引发错误。...一个守护线程创建子线程依然是守护线程。 66)有哪些不同线程生命周期? 当我们Java程序中新建一个线程状态是New。当我们调用线程start()方法,状态被改变为Runnable。

79740

吐血整理 | Java并发编程 72 卷

因此在后续JDK版本中他们被弃用了,之后Java API设计者就没有提供一个兼容且线程安全方法来停止一个线程。...因此,一个等待线程醒来时,不能认为原来等待状态仍然是有效notify()方法调用之后和等待线程醒来之前这段时间它可能会改变。...其实是一个用来创建线程安全单例老方法,单例实例第一次被创建试图用单个锁进行性能优化,但是由于太过于复杂JDK1.4中它是失败。...int++并不是一个原子操作,所以一个线程读取并加1,另外一个线程有可能会读到之前,这就会引发错误。...一个守护线程创建子线程依然是守护线程。 65、有哪些不同线程生命周期? 当我们Java程序中新建一个线程状态是New。当我们调用线程start()方法,状态被改变为Runnable。

54420

多线程面试50题(转)

这又是一个***钻问题,因为多线程可以等待单监控锁,Java API 设计人员提供了一些方法等待条件改变时候通知它们,但是这些方法没有完全实现。...当中断线程调用静态方法Thread.interrupted()来检查中断状态,中断状态会被清零。而非静态方法isInterrupted()用来查询其它线程中断状态且不会改变中断状态标识。...因此,一个等待线程醒来时,不能认为原来等待状态仍然是有效notify()方法调用之后和等待线程醒来之前这段时间它可能会改变。...其实是一个用来创建线程安全单例老方法,单例实例第一次被创建试图用单个锁进行性能优化,但是由于太过于复杂JDK1.4中它是失败,我个人也不喜欢。...wait()方法用于线程间通信,如果等待条件为真且其它线程被唤醒它会释放锁,而sleep()方法仅仅释放CPU资源或者让当前线程停止执行一段时间,但不会释放锁。你可以查看这篇文章获得更多信息。

30120

72道 并发编程 面试题!

因此在后续JDK版本中他们被弃用了,之后Java API设计者就没有提供一个兼容且线程安全方法来停止一个线程。...因此,一个等待线程醒来时,不能认为原来等待状态仍然是有效notify()方法调用之后和等待线程醒来之前这段时间它可能会改变。...其实是一个用来创建线程安全单例老方法,单例实例第一次被创建试图用单个锁进行性能优化,但是由于太过于复杂JDK1.4中它是失败。...int++并不是一个原子操作,所以一个线程读取并加1,另外一个线程有可能会读到之前,这就会引发错误。...一个守护线程创建子线程依然是守护线程。 65、有哪些不同线程生命周期? 当我们Java程序中新建一个线程状态是New。当我们调用线程start()方法,状态被改变为Runnable。

48921
领券