04 2022 档案
摘要:线程同步例子: 现实生活中,我们会遇到“同一个资源”,多个人都想使用的问题,比如:食堂打饭,每个人都想吃饭,最天然的解决的办法就是排队,一个个来。 处理多线程问题时,多个线程访问同一个对象(并发问题),并且某些线程还想修改这个对象,这时候我们就需要线程同步,线程同步其实就是一种等待机制,多个需要同时
阅读全文
摘要:线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如:后台记录操作日志,监控内存,垃圾回收等待 //测试守护线程 //守护你 public class Main { public static void main(String[] args) { God g
阅读全文
摘要:java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度那个线程来执行 线程的优先级用数字表示,范围从1-10 Thread.MIN_PRIORITY=1 Thread.MAX_PRIORITY=10 Thread.NORM_PRIORITY=5 使用以下
阅读全文
摘要:如何在线程里定义五个状态 Thread.State:可以去这个类查看线程的状态 线程状态。线程可以处于以下状态之一: NEW 尚未启动的线程处于此状态 RUNNABLE:在java虚拟机中执行的线程处于此状态 WAITING:正在等待另一个线程执行特定动作的线程处于此状态 TIMEO_WAITING
阅读全文
摘要:jion合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞,可以想象成插队。 //测试join方法 //想象为插队 public class Main implements Runnable{ //线程的方法 public void run(){ for (int i=0;i<100 ;i+
阅读全文
摘要:礼让线程,让当前正在执行的线程暂停,但不阻塞 将线程从运行状态转为就绪状态 让cpu重新调度,但礼让不一定成功,看CPU //测试礼让线程TextYield //礼让不一定成功,看CPU public class Main { public static void main(String[] arg
阅读全文
摘要:概述: sleep(时间)指定当前线程阻塞的毫秒数 sleep存在异常InterruptedException; sleep时间达到后线程进入就绪状态 sleep可以模拟网络延时,倒计时等 每一个对象都有一个锁,sleep不释放锁 //模拟网络延时:作用是放到问题的发生性 public class
阅读全文
摘要:线程方法: setPriority(int bewPriority) 更改线程优先级 static void sleep(long millis):在指定的毫秒数内让当前正在执行的线程休眠 void join() 等待该线程终止 static void yield() 暂停当前正在执行的线程对象,并
阅读全文
摘要:希腊字母表中排序第十一位的字母,英文名称为: lambda 其实质属于涵数编程的概念。 为什么要使用: 为了避免匿名内部类定义过多 可以让你的代码看越来很简洁 去掉一堆没有意义的代码,只留下核心的逻辑 理解Functional lnterface(涵数式接口)是学习java8,lambda表达式的关
阅读全文
摘要:如: 你:真实角色 写手:代理你,帮你写作业 作业:实现写手接口即可 /*静态代理模式总结: 1.真实对象和代理对象都要实现同一个接口 2.代理对象要代理真实角色,所以代理对象要有一个真实对象类型的属性 好处:代理对象可以做很多真实对象做不了的事情 真实对象专注做自己的事情 */ public cl
阅读全文
摘要:package WyktJpxc; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.ev
阅读全文
摘要:1.实现callable接口,需要返回值类型 2.重写call方法,需要抛出异常 3.创建目标对象 4.创建执行服务:ExecutorService ser=Exectutors.newFixedThreadPool(); 5.提交执行:Future<Boolean> result1=ser.sub
阅读全文
摘要:1.要有赛道距离,我和终点越来越近 2.判断比赛是否结束 3.打印出胜利者 4.龟兔赛跑开始 5.模拟兔子睡觉 6.龟赢了 package Threads; //模拟龟兔赛跑 public class RunQk implements Runnable { //胜利者 private static
阅读全文
摘要:package Threads; //实现多个线程,操作同一个实现类 //问题:多个线程同时操作一个资源的情况下,线程不安全了,数据紊乱 public class testRable implements Runnable { //票数 private int ticketNums=100; pub
阅读全文
摘要:实现步骤 定义实现类,实现Runnable接口 实现run方法,编写线程执行体 创建线程对象,调用start()方法启动线程 package Threads; import java.util.Scanner; //创建线程方式2:实现Runnable接口,重写run方法,执行线程需要丢入runna
阅读全文
摘要:第一引用IO包:IO包 Commons 针对开发IO流功能的工具类库,网上下载 第二使用FileUtils文件工具,复制URl到文件 IDEA引入架包后不能直接用,需要右键找到Add as Library,把他添加到类库中 package Threads; import org.apache.com
阅读全文
摘要:使用Thread创建线程步骤: 自定义线程类继承Thread类 重写继承类的run()方法,编写线程执行体 创建线程对象,调用start()方法启动线程 package Threads; //创建线程类:继承Thread类,重写run()方法,调用start /*总:注线程开始不一定执行,由cpu调
阅读全文
摘要:静态程序运行后 >进程 >若干个线程 注:很久多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错局 核心概论: *线程就是独立的执行路径 *在程序运行时,即使
阅读全文
摘要:无论添加什么功能都是,设置他的属性,画到画板上,然后监听他 定义数据 画上去 监听事件: 键盘监听 事件监听 package WyktJpxc; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; i
阅读全文
摘要:package WyktJpxc; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.ev
阅读全文
摘要:package WyktJpxc; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.ev
阅读全文
摘要:package WyktJpxc; import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.net.URL; imp
阅读全文
摘要:package WyktJpxc; import javax.swing.*; import java.awt.*; import java.net.URL; import java.util.Date; import java.util.Scanner; //创建一个游戏界面类,也是主启动类 pu
阅读全文
摘要:帧:可以把每一个动画和游戏是由帧组成的,当帧的时间片足够小,就是动画,1秒30帧。连起来是动画,拆开是静态图片。贪吃蛇就相当于一个一个帧组成的。 实现贪吃蛇要有: 帧动画 键盘监听事件 定时器:Timer package WyktJpxc; import javax.swing.*; import
阅读全文
摘要:文本框 import javax.swing.*; import java.awt.*; public class TextTxetDemo2 extends JFrame { public TextTxetDemo2(){ //创建容器 Container container= this.getC
阅读全文
摘要:下拉列表 import javax.swing.*;//下拉列表 import java.awt.*; public class TextCombobxDemo extends JFrame { public TextCombobxDemo(){ //创建容器 Container container
阅读全文
摘要:图标按钮 package ko; import javax.swing.*; import java.awt.*; import java.net.URL; //图标按钮 public class JButtonDem extends JFrame { public JButtonDem(){ //
阅读全文
摘要:JPanel面板 import javax.swing.*; import java.awt.*; import java.util.Scanner; //JPanel面板 public class JPanelDem extends JFrame { public JPanelDem(){ //获
阅读全文
摘要:在label标签中存放图标 import java.util.Scanner; //主窗口 lable:标签,在lable中放置一个图标和图片 //ICON:图标,ICON是一个接口,里面有三个方法,并且我们是需要重写的,第一个方法是paintIcon():画一个图标,getIconWidth():
阅读全文
摘要:import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Scanner; //启动类 //弹窗默认就有关闭事件,我们就不用再写关闭方法 public class main extends J
阅读全文
摘要:注:在JFrame中不使用Container,那我们为窗体设置的东西都不会生效
阅读全文
摘要:import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Scanner; //启动类 public class main { public static void main(String[]
阅读全文
摘要:import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner; //启
阅读全文
摘要:目的:测试鼠标监听(只测试鼠标点击) import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; import java.util.Iterator; import jav
阅读全文
摘要:import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.Scanner; //启动类 public class main { //注意:每次用完画笔要把他还原成最初的颜色,也就是不给画笔设置
阅读全文
摘要:OOP原则:组合大于继承 继承: class Aextends B{ } 组合: class A{ public B b;//把B创建进来也可以调用内部的全部方法,而且不会产生过多的耦合 } 简易计算器 : import java.awt.*; import java.awt.event.Actio
阅读全文
摘要:输入框TextField监听: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class main{ public static void main
阅读全文
摘要:事件监听:(Listoner),事件监听都可以使用addWindowListener来做 当某个事情发生的时候,干什么? 简单的事件监听例子: import java.util.Scanner; public class Main { public static void main(String[]
阅读全文
摘要:制作此图: 思路分析: 1.先构思,如何去做。 2.第一步,frame窗口 3.4个面板 3.1,把窗口new成一个2行一列的布局 Frame fra=new Frame();//创建窗口 //设置窗口为2行1列布局 fra.setLayout(new Gridlayout(2,1)); 3.2左边
阅读全文
摘要:布局分类: 流式布局:从左到右 东西南北中 表格式布局 流式布局: import java.util.Scanner; public class Main { public static void main(String[] args) { Frame fran= new Frame();//创建窗
阅读全文
摘要:Panel可以看成一个空间,但是不能单独存在。 import java.util.Scanner; public class Main { public static void main(String[] args) { Frame fran= new Frame(); //布局的概念 Panel
阅读全文
摘要:AWT: Awt介绍: 1.包含了很久的类和接口!GUI:图形界面编程 2.元素:窗口、按钮、文本框 3.类和方法都是在,java.awt包 创建第一个窗口: import java.util.Scanner; public class Main extends Frame { public sta
阅读全文
摘要:作用:按钮、键盘事件、监听事件、破解工具、图片 GUI核心技术:Swing AWT 不流行原因: 1.界面不美观 2.需要jre环境 为什么要学习 1.可以写出自己心中想要的小工具 2.工作时,可能需要维护到swing界面 3.了解MVC架构,了解监听!
阅读全文
摘要:自定义异常: 需继承Exception类 步骤: 1.创建自定义异常类 2.在方法中通过throw关键字抛出异常对象 3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常继续进行下一步操作。 4.在出现异
阅读全文
摘要:关键词: try:尝试处理什么东西 catch:捕获什么东西 finally:无论怎么要都是会执行 throws、throws:从类或方法中抛出异常 结构: try { 代码块 } catch(Exception e) { } finally { } 异常: import java.util.Sca
阅读全文
摘要:什么是异常: 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入了不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等!我们程序在运行着,内存或硬盘满了。 软件程序运行过程中,非常可能遇到以上这些异常问题,那怎么
阅读全文
摘要:内部类:相当于在一个类只再定义一个类,如A类中定义一个B类,那么B类相对A类来说就称为内部类,A类相对于B类来说就是外部类 内部类分类:成员内部类、静态内部类、局部内部类、匿名内部类 import java.util.Scanner; public class Main { public stati
阅读全文
摘要:接口: 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有 接口:只有规范!自己无法写方法~专业的约束 import java.util.Scanner; public class Main { public static void main(String[] args) { } } //
阅读全文
摘要:import java.util.Scanner; //abstract:为类中添加这个修饰符,就变成抽象类 public abstract class Main { //假如这个方法只是一个约束,只是想有人帮我们实现,我们自己不写代码,那我们把他写成抽象方法就可以了 //抽象方法只有方法名,没有方
阅读全文
摘要:import java.util.Scanner; //属性 public class Main { public static int age=10; public double score; public static void main(String[] args) { Main ma=new
阅读全文
摘要:instanceof作用:判断两个类之间是否存在父子类关系。 import java.util.Scanner; public class Main { public static void main(String[] args) { Object obj=new Stror(); Proae pr
阅读全文
摘要:多态:实现动态编译,也就代码的类型只有在执行的时候才能确定,在写代码阶段确定不了,这样可以让代码的可扩展性更强。 同一方法,可以根据发送对象的不同而采用多种不同的行为方式 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多 多态的存在条件: 有继承关系 子类重写父类方法 父类引用指向子类对
阅读全文

浙公网安备 33010602011771号