多线程是Java工程师进阶所必须掌握的一项技能,也是面试中绕不过的一个环节,而死锁又是多线程同步失败的经典案例,对于复杂的系统,死锁是很难通过代码层面来做静态检测和排查的,所以有的面试官会从反向出发,让你手写一个死锁程序.     先来看一个网络上常见的死锁程序(可能存在问题): public class DeadLockTest { private static Object lock1 = new Object(); private static Object lock2 = new…
Java 循环语句之多重循环 循环体中包含循环语句的结构称为多重循环.三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环.在二重循环中,外层循环每执行一次,内层循环要执行一圈. 如下所示: 接下来我们通过两个最简单的多重循环程序来深入理解多重循环的执行过程~ 1.使用 * 打印长方形: 实现代码为: System.out.println("打印长方形"); // 外层循环控制行数 for (int i = 1; i <= 3; i++) { // 内层循环控制每行的*…
程序流程控制 从键盘获取不同类型的变量: 使用Scanner类,具体实现步骤: 1.导包:import java.util.Scanner; 2.Scanner的实例化:Scanner scan = new Scanner(System.in); 3.调用Scanner类的相关方法,来获取指定类型的变量 注意:需要根据相应的方法输入指定类型的值,如果输入的数据类型与要求的数据类型不匹配时,会有异常:InputMisMatchException. 使用Scanner类获取int类型的变量: imp…
控制台程序. 准备好应用程序窗口及其包含的组件并显示,这称为实现窗口.调用应用程序窗口对象的setVisible()方法就会实现窗口.实现了应用程序的GUI之后,在主线程中修改或查询GUI可能会导致死锁.Swing组件的方法都不是线程安全的,所以它们必须在不是主线程的其它线程中执行. 创建GUI并处理与GUI交互的线程成为Swing事件分派线程. import javax.swing.JFrame; import javax.swing.UIManager; import javax.swing…
之前我们利用java写了很多东西,但是好像都没有什么实际意义. 因为有意义桌面小程序怎么都得有个界面,可是界面又不太好搞.或者 了解到这一层的人就少之又少了. 呀,是不是还得开辟一些版面来介绍awt和 swing... 算了 先把这个 双击执行的小程序 贡献出来. 这次 在分享一下源代码[以前还没有上传过源代码,布置怎么个搞法] 要求是: 输入一个 后缀名,然后输入所在目录,然后 点击查找,比如我们可以 输入F:\,然后查找 F盘下面的所有后缀名为比如.pdf 举例: 主要是 看了很多 资源,然…
前言 前两天在公司的内部博客看到一个同事分享的线上服务挂掉CPU100%的文章,让我联想到HashMap在不恰当使用情况下的死循环问题,这里做个整理和总结,也顺便复习下HashMap. 直接上测试代码 由于机器配置和性能不同,测试出效果的线程数和put数量也各不相同 public class HashMapInfiniteLoopTest { /** * 基于JDK1.7测试HashMap在多线程环境下假死锁的情况 * JDK1.8的HashMap实现跟1.7比较已经有很大的变化,已不存在这样的…
类重复,pulic class demo1 和class demo1 重复 无主类, 在cmd中输入命令: SET CLASSPATH=. (等号后为英文点符号),即可设置解释的路径为当前路径. 再次运行java xxx即可. 一个文件多个类,编译时会编译所有的类,必须选择一个.class类运行java -- java.lang包是Java语言的核心类库,包括了运行Java程序必不可少的系统类,如基本数据类型.基本数学函数.字符串处理.线程.异常处理类等.每个Java程序运行时,系统都会自动地引…
一个Java源文件中可以有很多类,但只能有一个类是public的        Java程序是从一个public类main函数开始执行的,只能有一个public是为了给类装载器提供方便,一个public只能定义在以它的类名为文件名的文件中. 每个源文件都只有一个public类,因为每个源文件都只能有一个公共接口,用public来表现,该接口可以按照要求包含众多支持包访问权限的类,如果有一个以上的public,编译器就会报错,并且pubic类的名称必须与文件名相同(严格区别大小写),当然一个编译单…
前言 前些天无意间在百度搜索了一下以前写过的博客 我啥时候在这么多不知名的网站上发表博客了???点进去一看, 内容一模一样,作者却不是我... 然后又去搜了其他篇博客,果然,基本上每篇都在别的网站上有,细想,可能是通过网络爬虫爬取博客园首页博客,然后copy至自己网站中,于是乎,博主也来实现一遍爬取流程... 实现思路 先访问博客园首页,F12查看源代码,可以看到博客的链接和标题都是放在一个a标签里, 点击一下上一下.下一页,再看一下请求参数,嗯...这个应该是页码参数 通过以上这些信息,我们就…
一个.java文件当然可以包括多个类.但这些类有一个特殊的类与其它的不同,,这个类是带public 属性的类.一个.java类文件中仅有一个public属性的类.而且这个类与文件名相同.…