- 浏览: 5045 次
最新评论
文章列表
今天去**面试了一下那个技术面试官明显懂得不多,为了一个他明显说错的问题我做一下阐述希望对大家日后的面试能有点帮忙,我是翻脸了,对这样的要有底线,哈哈
问,class A 中两个方法 method1 method2 都用了synchronized,那么new classA
多线程访问 method1、method2 是不是线程安全的。
首先答案是安全的,一个线程访问一个object的method1代码片段的时候会获得整个对象的锁,也就是所object内是安全的。他确实说两个分别synchronized的代码块是独立的真可笑
但是如果是一个object的synch ...
大家学java的人每次出去面试基本上都会遇到问一些线程、锁、阻塞等等问题,线程就会遇到各种不确定性,那么怎么解决这些问题呢?这个是个最大的问题,我按照一些从简到难整理一些思路排序一些简单的例子加上我的理解,供大家讨论一下。
一、线程创建方法
Thread,Runnable
那么问题来了,这三种方式的区别是?
1、Runnable解决了java单继承的问题,用Thread实现起来比较麻烦
2、Runnable很容易实现资源的共享
其实我们翻翻代码就能发现Thread也是impl了Runnable接口,但是最终调用都是通过start()方法调用start0()的native方法来完成 ...
一、移动光标
1、左移h、右移l、下移j、上移k
2、向下翻页ctrl + f,向上翻页ctrl + b
3、向下翻半页ctrl + d,向上翻半页ctrl + u
4、移动到行尾$,移动到行首0(数字),移动到行首第一个字符处^
5、移动光标到下一个句子 ),移动光标到上一个句子(
6、移动到段首{,移动到段尾}
7、移动到下一个词w,移动到上一个词b
8、移动到文档开始gg,移动到文档结束G
9、移动到匹配的{}.().[]处%
10、跳到第n行 ngg 或 nG 或 :n
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
三、尤其关键的是,当一个线程访问object的一个synchr ...
今天去高*面试了一下,让人很气愤,一个不懂技术的面试官怎么干的,我记录下来给大家留作记录
问:classA 有两个synchronized methodA,methodB,objA = new classA 问objA.methodA,objA.methodB
线程安全吗? 面试官回答不安全
我都不回答了,看我的代码和输出结果,以后大家出去面试对这样的面试官要鄙视一下
package com.example;
public class Sync {
public synchronized String getA() throws InterruptedExceptio ...
java新手在遇到jvm上的问题,很多时候都是不知所措,下面我介绍一下小问题(仅单机,web)查找的路子,其中有遇到各种jdk的工具都是,仅作为自己的工作备份,后续的会陆续增加。
首先查看日志,web server会有很多有用的日志,有些时候直接通过日志就可以搞定这些问题了
日志看完了,我们就从运维的角度来定位问题,找到对应的web机器,top(load average,cpu、内存)查看ctrl+h,找到对应的进程号转16进制,jstack 14400|grep -A 10 4015 ,定位到对应堆栈信息查看一下代码,找到对应的代码直接解决掉。多来几次就逮到了,普通的小问题就差不多 ...
经常听人谈起内存泄露,但要问什么是内存泄露,没几个说得清楚。内存泄露是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成的内存空间的浪费称为内存泄露。内存泄露有时不严重且 ...