![](https://img-blog.csdnimg.cn/20191216134328160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
Java笔记
辛勤小王子
分享编程过程中遇到的问题和解决办法,大家一起进步
展开
-
递归
public static void main(String[] args) { traverseFolder1("F:\\房屋下載\\10-20"); } /* * 使用遞歸的方法 */ public static void traverseFolder1(String path) { File file = new File(path); if (file.exists()) { File[] files = file.li原创 2020-06-22 15:18:46 · 104 阅读 · 0 评论 -
Java多线程的锁
不可重入锁:/** * 不可重入锁 * @author Jack * */public class LockTest01 { Lock lock = new Lock(); public void a() throws InterruptedException{ lock.lock(); doSomething(); lock.unlock(); } public void doSomething() throws InterruptedException { lock.原创 2021-04-20 15:07:20 · 89 阅读 · 0 评论 -
线程的局部存储空间ThreadLocal
/** * ThreadLocal:每个线程自身的本地、局部存储区域 * get/set/initialValue * @author Jack * */public class ThreadLocalTest01 { //private static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>(); //更改初始化的值(默认是null) private static ThreadLocal原创 2021-04-20 14:35:30 · 151 阅读 · 0 评论 -
多线程模式下的单例(DCL单例模式)
/** * DCL单例模式:在懒汉式套路的基础上加入并发控制,保证在多线程环境下,对外只存在一个对象 * 1、构造器私有化,避免外部new构造器 * 2、提供私有的静态属性,存储对象的地址 * 3、提供公共的静态方法,获取属性 * @author Jack * */public class DoubleCheckedLocking { //1、构造器私有化 private DoubleCheckedLocking(){} //2、提供私有的静态属性(懒汉式:没有直接new,而是调用原创 2021-04-20 14:05:30 · 107 阅读 · 0 评论 -
Volatile数据的同步
当num变量没有用volatile修饰的时候,电脑很忙,没有时间去同步num/** * volatile用于保证数据的同步,也就是可见性 * @author Jack * */public class VolatileTest { private static int num = 0; public static void main(String[] args) throws InterruptedException { new Thread(new Runnable() {原创 2021-04-20 13:42:12 · 112 阅读 · 0 评论 -
Java多线程:任务定时调度(Timer)
import java.text.ParseException;import java.util.Timer;import java.util.TimerTask;/** * 定时调度:Timer和TimerTask类 * @author Jack * */public class TimerTest01 { public static void main(String[] args) throws ParseException { Timer timer = new Timer()原创 2021-04-20 11:43:15 · 146 阅读 · 0 评论 -
Java线程同步
线程同步:要在多线程的环境下保证数据的准确性和安全性线程不安全的示例1:银行取钱多个人同时取钱时,账户余额会出现负数的情况/** * 線程不安全:取錢 * @author Jack * */public class DrawMoney { public static void main(String[] args) { //賬號 Account account = new Account(100, "結婚禮金"); Drawing you = new Drawing(ac原创 2021-04-19 17:29:26 · 249 阅读 · 0 评论 -
使用jad反编译Java文件
首先下载jad工具:通道1:https://varaneckas.com/jad/通道2(百度云):链接:https://pan.baidu.com/s/1tH9KgdMp8idYXOBI-YHegg 提取码:6666下载完成后,解压得到如下文件:反编译:1、复制Hello.class文件到jad目录下2、在jad目录下打开命令提示符工具,输入:jad -s java Hello.class发现错误,根据提示把命令改成:.\jad -s java Hello.class出现这个原创 2021-04-19 11:17:02 · 313 阅读 · 0 评论 -
线程的其他方法
/** * 線程的其他方法 * isAlive:線程是否還或者 * Thread.currentThread():當前線程 * setName/getName:代理名稱 * @author Jack * */public class InfoTest { public static void main(String[] args) throws InterruptedException { System.out.println(Thread.currentThread().isAliv原创 2021-04-16 15:09:09 · 56 阅读 · 0 评论 -
守护线程Daemon
/** * 守护线程:是为用户线程服务的,jvm停止不用等待守护线程结束 * 线程默认都是用户线程,JVM要等待所有的用户线程执行完毕才会停止 * @author Jack */public class DaemonTest{ public static void main(String[] args) { God god = new God(); You you = new You(); Thread t = new Thread(god); //将用户线程调整为守护线程原创 2021-04-09 16:39:29 · 64 阅读 · 0 评论 -
线程优先级priority
优先级,仅代表被优先调度的概率更高,并不是绝对的优先/** * 线程优先级1-10 * 1、NORM_PRIORITY 5 默认 * 2、MIN_PRIORITY 1 * 3、MAX_PRIORITY 10 * @author Jack * */public class PriorityTest{ public static void main(String[] args) { //默认优先级是5 System.out.println(Thread.currentThread(原创 2021-04-09 16:23:16 · 251 阅读 · 0 评论 -
join合并线程(插队)
/** * join:合并线程(插队) * @author Jack * */public class JoinThreadTest{ public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(new Runnable() { @Override public void run() { for(int i=0;i<100;i++){ .原创 2021-04-09 15:51:44 · 229 阅读 · 0 评论 -
Yield礼让线程
/** * yield礼让线程,暂停线程直接进入就绪状态,不是阻塞状态, * 避免一个线程占用过久,让cpu重新调度 * @author Jack * */public class MyYieldThread implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()+"-->start"); Thread.yield(); S原创 2021-04-09 15:42:09 · 65 阅读 · 0 评论 -
线程的五个状态
注意点:1、一个线程从阻塞状态不能直接进入运行状态,而是先进入就绪状态。2、一个线程死亡之后不能重新开启,重新开启的是一个新的线程新生:new之后就进入了新生状态,每个线程有自己的一个工作空间,这个工作空间跟电脑的主内存交互2、就绪:调用start方法后进入就绪状态,处于就绪队列中等待被cup调度进入就绪状态的方式:start方法,阻塞事件解除,yield,JVM算法切换3、运行:当系统调度到了一个等待中的线程时,这个线程处于运行状态4、阻塞:进入阻塞状态的方式:sleep,wa原创 2021-04-09 15:35:13 · 871 阅读 · 0 评论 -
Java 从外部停止线程
public class MyThread implements Runnable { private boolean flag = true; private String name; public MyThread(String name) { this.name = name; } int i = 0; @Override public void run() { while(flag){ System.out.println(name+"-->"+i++);原创 2021-04-09 15:14:30 · 479 阅读 · 0 评论 -
在线安装net.sf.fjep.fatjar
在线安装步骤:eclipse菜单栏 Help -> Install New Software… -> Work with输入:fatjat - http://kurucz-grafika.de/fatjar然后一直 next,重启之后就可以了!安装好了后,工程–右键转载 2021-03-29 15:29:29 · 239 阅读 · 0 评论 -
HTTPclient(4.5.13)请求https网页
本文使用的HTTPclient版本是4.5.13import java.io.IOException;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.SSLContext;import org.apache.hc.client5.http.ClientProtocolException;import org.apache.hc原创 2021-03-19 15:33:30 · 1940 阅读 · 0 评论 -
Java原生API请求网页
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import java.nio.charset.StandardCharsets;publi原创 2021-03-19 13:51:43 · 217 阅读 · 0 评论