- 博客(75)
- 资源 (1)
- 收藏
- 关注
原创 线程协作 线程池
1.4 线程协作生产者消费者模式应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费.如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止.如果仓库中放有产品﹐则消费者可以将产品取走消费﹐否则停止消费并等待,直到仓库中再次放入产品为止.线程通信解决方式一:并发协作模型“生产者/消费者模式”—>管程法生产者:负责生产数据的模块(可能是方法﹐对象﹐线程,进程);消费者:
2021-09-05 22:34:48
128
原创 死锁
死锁多个线程各自占有一些共享资源﹐并且互相等待其他线程占有的资源才能运行﹐而导致两个或者多个线程都在等待对方释放资源﹐都停止执行的情形.某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题.package com.zishi.Lock;import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;//死锁:多个线程互相抱着对方需要的资源,然后形成僵持public class DeadLock { public sta
2021-09-05 00:48:02
113
原创 线程同步
线程同步(重点、难点)并发并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。队列和锁食堂排队保证安全性,比如厕所可以上锁doge锁机制synchronized synchronizedpackage com.zishi.syn;//不安全的买票//线程不安全,有负数public class UnsafeBuyTicket { public static void m
2021-09-03 20:20:58
97
原创 线程状态
线程状态线程停止package com.zishi.lesson3;//测试stop//1.建议线程正常停止--》利用次数,不建议死循环//2.简易使用标志位-->设置一个标志位//3.不要使用stop 或者 destroy 等过时或者JDK不建议使用的方法public class TestStop implements Runnable{ //1.设置一个标识位 private boolean flag = true; @Override pu
2021-09-02 19:22:25
81
原创 Lembda
Lembdapackage com.zishi.lesson3;/*推导Lambdal表达式 */public class TestLembdal { //3.内部静态类 static class Like2 implements ILike{ @Override public void lambda() { System.out.println("i like lambda2"); } }
2021-09-01 23:28:35
97
原创 静态代理模式
静态代理模式package com.zishi.lesson3;//静态代理总结://真实对象和代理对象都需要实现同一个接口//代理对象要代理真实角色//好处://代理对象可以做很多真实对象做不了的事情//真实对象专注做自己的事情public class StacticProxy {public static void main(String[] args) {You you = new You();// new Thread( ()-> System.out.pr
2021-09-01 00:08:52
52
原创 Thread、Runnable
1.2 线程创建三种创建方式Thread:package com.zishi.lensson1;//创建线程方式一:继承Thread类,重写run()方法,调用start开启线程public class TestThread1 extends Thread{ @Override public void run() { //run方法线程体 for (int i = 0; i < 20; i++) { System
2021-08-30 19:07:50
88
原创 多线程概述
多线程详解1.1 概述 线程介绍多任务吃饭玩手机,开车打点滴,蹲坑打游戏 现实中太多这样同时做多件事情的例子了,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情。多线程道路窄,拓宽,多条路收银,多个收银员程序 进程(process) 线程(thread)说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是—个静态的概念。而进程则是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位通常在一个进程中可
2021-08-30 19:05:34
82
原创 URLcc
1.8 URL统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上用于指定信息位置的表示方法。它最初是由蒂姆·伯纳斯·李发明用来作为万维网的地址。现在它已经被万维网联盟编制为互联网标准RFC1738。https://www.baidu.com/统一资源定位符:定位资源的,定位互联网上的某一个资源DNS域名解析 www.baidu.com xxx.xx…x…x协议://ip地址:端口/项目名/资源package com.zishi.les
2021-08-29 22:42:54
248
原创 UDP
1.7UDP发短信:不用连接,需要对方的地址发送端:package com.zishi.lesson3;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;//不需要来凝结服务器public class UdpClientDemo01 { public static void main(S
2021-08-29 22:42:08
56
原创 TCP文件上传
1.7TCP文件上传服务器package com.zishi.lesson2;import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;public class TcpSeverDemo02 { public static void main(String[] args) throws Exception { //1.创建窗口
2021-08-29 00:55:04
54
原创 TCP
1.6 TCP客户端1.连接服务器Socket2.发送消息服务器1.建立服务的端口ServerSocket2.等待用户的链接accept3.接收用的消息服务器package com.zishi.lesson2;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.Socket;import java.net.Server
2021-08-28 23:23:51
68
原创 通信协议
1.5通信协议协议:约定,就好比我们现在说的是普通话。**网络通信协议:**速率,传输码率,代码,控制传输**问题:**非常的复杂大事化小:分层TCP/IP协议簇重要:TCP:用户的协议UDP:用户数据报协议出名的协议:TCP:IP:网络TCP/UDP 对比TCP:打电话链接,稳定“三次握手"四次挥手”最少需要三次,保证稳定连接A:你瞅啥?B:愀你唯地?A:干一场!A:我要断开了B:我知道你要断开了B:你真的要断开了吗A:我真的要断开了
2021-08-28 23:21:19
78
原创 网络编程,概述,网络通信要素,ip地址,端口Port
网络编程1.1概述信件计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台计算机计算机/140338)及其外部设备,通过通信线路连接起来,在网络操作系统网络操作系统/3997),网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:无线电台…传播交流信息,数据交换,通信想要达到这个效果需要什么:1.如何精准的定位网络上的一台计算机 端口,定位到这个计算机上的某个资源2.找到了这个主机,如何传输数据?Javaweb:网页编程 B/
2021-08-26 00:45:11
115
原创 贪吃蛇 (狂神说)
贪吃蛇(狂神说案例)package com.zishi.snake;import javax.swing.*;public class StartGame { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setBounds(10,10,900,720); frame.setResizable(false);//设置窗口大小不可变
2021-08-24 22:47:47
324
原创 swing文本框
3.7 文本框文本框package com.zishi.lesson06;import javax.swing.*;import java.awt.*;public class TestTextDemo01 extends JFrame { public TestTextDemo01(){ Container container = this.getContentPane(); JTextField textField = new JTextF
2021-08-24 22:43:28
388
原创 swing列表、文本框
3.6列表下拉框package com.zishi.lesson06;import javax.swing.*;import java.awt.*;public class TestComboboxDemo01 extends JFrame { public TestComboboxDemo01(){ Container container = this.getContentPane(); JComboBox status = new JCom
2021-08-23 18:43:06
92
原创 按钮、单选框、复选框
3.5 按钮普通按钮package com.zishi.lesson05;import javax.swing.*;import java.awt.*;import java.net.URL;public class JButtonDemo01 extends JFrame { public JButtonDemo01(){ Container container = this.getContentPane(); //将一个图片变成图标
2021-08-22 23:41:09
211
原创 JPanel面板
3.4 面板JPanelpackage com.zishi.lesson05;import javax.swing.*;import java.awt.*;public class JPanelDemo extends JFrame { public JPanelDemo(){ Container container = this.getContentPane(); container.setLayout(new GridLayout(2,1,10,1
2021-08-22 21:17:16
69
原创 Icon标签
Icon标签package com.zishi.lesson04;import javax.swing.;import java.awt.;import java.net.URL;public class ImageIconDemo extends JFrame {public ImageIconDemo(){ //获取图片地址 JLabel label = new JLabel("ImageIcon"); URL url = ImageIconDemo.class.ge
2021-08-22 20:55:54
401
原创 JDiolog弹窗
3.2弹窗package com.zishi.lesson04;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;//主窗口public class DialogDemo extends JFrame { public DialogDemo() { this.setVisible(true);
2021-08-22 18:56:31
275
原创 Swing JFrame面板
3.1窗口、面板package com.zishi.lesson04;import javax.swing.;import java.awt.;public class JFrameDemo {//init();初始化public void init(){//顶级窗口JFrame jf = new JFrame(“这是一个JFrame窗口”);jf.setVisible(true);jf.setBounds(200,300,300,300);jf.setBackground
2021-08-22 18:18:18
66
原创 窗口监听事件
窗口监听事件package com.zishi.lesson03;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class TestWindow { public static void main(String[] args) { new WindowFrame(); }}class WindowFrame ext
2021-08-13 17:45:08
105
原创 画笔、鼠标监听
画笔、鼠标监听package com.zishi.lesson03;import java.awt.*;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.util.ArrayList;import java.util.Iterator;public class TestMouseListener { public static void main(String[] args
2021-08-13 01:22:02
74
原创 画笔paint
画笔paintpackage com.zishi.lesson03;import java.awt.*;public class TestPaint { public static void main(String[] args) { new MyPaint().loadFrame(); }}class MyPaint extends Frame{ public void loadFrame(){ setBounds(200,200,6
2021-08-12 23:13:21
38
原创 简易计算器+组合和内部
简易计算器+组合和内部package com.zishi.lesson02;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;//简易计算器public class TestCalc { public static void main(String[] args) { new Calculator(); }}//计算器类cla
2021-08-12 00:14:42
80
原创 简易计算器
简易计算器package com.zishi.lesson02;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;//简易计算器public class TestCalc { public static void main(String[] args) { new Calculator(); }}//计算器类class Cal
2021-08-11 23:52:53
72
原创 输入框事件监听TestFiled
输入框事件监听TestFiledpackage com.zishi.lesson02;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class TestText01 { public static void main(String[] args) { //正常情况main只管启动 new MyFrame();
2021-08-11 21:55:18
99
原创 事件监听
事件监听package com.zishi.lesson02;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class TestActionEvent { public static void mai
2021-08-10 17:54:11
92
原创 布局Demo
布局的小demopackage com.zishi.lesson01;import java.awt.*;//练习demopublic class TestLayout { public static void main(String[] args) { Frame frame = new Frame(); frame.setSize(400,300); frame.setLocation(400,400); frame.se
2021-08-07 22:47:51
110
原创 三种布局管理器
三种布局管理器流式布局(C:\Users\onefat\AppData\Roaming\Typora\typora-user-images\image-20210807200149017.png)]package com.zishi.lesson01;import java.awt.*;public class TestFlowLayout { public static void main(String[] args) { Frame frame = new Fra
2021-08-07 21:14:50
65
原创 Panel
Panelpackage com.zishi.lesson01;import java.awt.*;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;//Panel 可以看作是一个空间,但不能单独存在public class TestPanel01 { public static void main(String[] args) { Frame frame = new Fram
2021-08-06 23:36:35
189
原创 第一个Frame窗口
第一个Frame窗口package com.zishi.lesson01;import java.awt.*;//GUI的第一个界面public class TestFrame { public static void main(String[] args) { //Frame,JDK,源码 Frame frame = new Frame("我的第一个Java图像界面窗口"); //需要设置可见性 frame.setVis
2021-08-06 23:08:08
86
原创 自定义异常
自定义异常package com.zishi.exception.demo02;//自定义的异常类public class MyException extends Exception{ //传递数字>10 private int detail; public MyException(int a){ this.detail = a; } //toString:异常的打印信息 @Override public Strin
2021-08-04 00:19:24
54
原创 捕获异常和抛出异常
捕获异常和抛出异常package com.zishi.exception;public class Test { public static void main(String[] args) { int a = 1; int b = 0; //假设要捕获多个异常:从小到大 try{ //try监控区域 System.out.println(a/b); }catch (Error e){
2021-08-04 00:00:05
94
原创 异常基础知识
异常基础知识异常分类检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。错误Error:错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。异常体系结构Java把异常当作对象来处理,并定义一个基类java.lang.Thro
2021-08-03 22:43:37
65
原创 内部类
内部类package com.zishi.oop.demo10;public class Outer { private int id = 10; private void out(){ System.out.println("这是外部类的方法"); } public class Inner{ public void in(){ System.out.println("这是内部类的方法"); }
2021-07-28 00:13:45
53
原创 接口
接口package com.zishi.oop.demo09;public interface UserService { //常量~ public static final 默认都是静态常量 int age = 99; //接口中所有定义其实都是抽象的 public abstract public void run(String name); //public 灰色 void delete(String name); void update(
2021-07-27 23:53:29
54
原创 抽象类
抽象类package com.zishi.oop.demo08;//abstract 抽象类:类 extends :单继承 (接口可以多继承)public abstract class Action { //约束 有人帮我们实现 //abstract 抽象方法,只有方法名字,没有具体实现 public abstract void doSomething(); //1.不能new这个抽象类,只能靠子类去实现它;约束! //2.抽象类中可以写普通的方法~
2021-07-27 19:38:01
41
原创 static关键字
static关键字package com.zishi.oop.demo07;//staticpublic class Person { //赋初始值 { System.out.println("匿名代码块"); } //只执行一次 static{ System.out.println("静态代码块"); } public Person(){ System.out.println("构造
2021-07-27 13:44:20
43
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人