07 2021 档案
摘要:初识MySQL,关系型数据库&非关系型数据库 数据库的分类: 关系型数据库:(SQL) MySQL,Oracle,Sql Server,DB2,SQLlite 通过表和表之间,行和列之间的关系进行数据的存储 非关系型数据库:(NoSQL) Not Only Redis,MongDB 对象存储,通过对
阅读全文
摘要:什么是数据库,为什么要学习数据库 JavaEE:企业级Java开发 Web 前端:(页面:展示 数据) 后台:(连接点:连接数据库JDBC,连接前端(控制,控制视图跳转,给前端传递数据)) 数据库:(存数据:Txt,Excel,Word) 为什么要学习数据库 1.岗位要求 2.大数据时代,得数据者得
阅读全文
摘要:初识Tomcat 服务端: 自定义 S Tomcat服务器 S :Java后台开发 客户端: 自定义 C 浏览器 B Tomcat的启动 修改页面 修改配置文件,解决乱码问题,Windows:GBK
阅读全文
摘要:TCP文件上传实现 服务端: package net.study; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class TcpTransferFileServer { public
阅读全文
摘要:TCP实现聊天 IO流关闭是简写的,正常写要判断是否为null 客户端:(最好捕获异常) 1.连接服务器Socket 2.发送消息 package net.TCPChat; import java.io.IOException; import java.io.OutputStream; import
阅读全文
摘要:通信协议 协议:约定,比如在中国约定说普通话 网络通信协议:速率,传输码率,代码结构,传输控制... 问题:非常复杂 大事化小:分层 TCP/IP协议簇:实际上是一组协议 重要: TCP:用户传输协议 UDP:用户数据报协议 出名的协议: TCP:用户传输协议 IP:网络互联协议 TCP/UDP对比
阅读全文
摘要:端口 端口表示计算机上的一个程序的进程: 不同的进程有不同的端口号!用来区分软件 被规定:0~65535 TCP,UDP:65535*2 单个协议下,端口号不能冲突 端口分类: 公有端口:0~1023 HTTP:80 HTTPS:443 FTP:21 Telent:23 程序注册端口:1024~49
阅读全文
摘要:IP地址 IP地址:InetAddress(没有构造器,通过静态方法返回) java.net包下 唯一定位一台网络上的计算机 127.0.0.1:本机localhost ip地址的分类 IPV4/IPV6 IPV4:192.168.194.1 32位 IPV6: 2409:8a55:227a:83c
阅读全文
摘要:网络通信的两个要素 TCP/IP参考模型 1.网络编程中有两个主要的问题 如何准确定位网络上的一台或多台主机 找到主机后如何进行通信 2.网络编程中的要素 IP和端口号 网络通信协议 UDP,TCP 3.万物皆对象
阅读全文
摘要:计算机网络概述 信件: 两种文件发送方式: TCP:安全(双向连接) UDP:不安全(无连接) 计算机网络: 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 网络
阅读全文
摘要:线程池 背景:经常创建和销毁,使用量特别大的资源,比如并发情况下的线程,对性能影响很大。 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁,实现重复利用,类似生活中的公共交通工具。 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用线程
阅读全文
摘要:信号灯法_解决生产者消费者问题 添加一个标志位 代码: package multithreading.Advanced; public class TestPC2 { public static void main(String[] args) { TV tv = new TV(); new Pla
阅读全文
摘要:管程法_解决生产者消费者问题 生产者:负责生产数据的模块(可能是方法,对象,线程,进程); 消费者:负责处理数据的模块(可能是方法,对象,线程,进程); 缓冲区:消费者不能直接使用生产者的数据,它们之间有个“缓冲区”生产者将生产好的数据放入缓冲区中,消费者从缓冲区拿出数据 代码: package m
阅读全文
摘要:线程协作_生产者消费者问题 线程通信 应用场景:生产者消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止 如果仓库中放有产品,则消费者可以将产品取走消费,
阅读全文
摘要:Lock(锁) 从JDK 5.0开始,Java提供了更加强大的线程同步机制————通过显示定义同步锁对象来实现同步。同步锁使用Lock对象充当。 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程
阅读全文
摘要:死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题 死锁避免的方法:破坏大于等于一个,产生死锁的必要条件 产生死锁的四个必要条件: 互斥条件:
阅读全文
摘要:测试JUC安全类型的集合:CopyOnWriteArrayList 代码: package multithreading.TestSynchronized; import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput; import java.u
阅读全文
摘要:同步方法 由于我们可以通过private关键字来保证数据对象只能被方法访问,所以我们只需要针对方法提出一套机制,这套机制就是synchronized关键字,它包括两种用法:synchronized方法和synchronized块 同步方法:public synchronized void metho
阅读全文
摘要:线程不安全的三个案例 1. 不安全的买票 代码: package multithreading.UnSafe; // 不安全的买票 // 线程不安全,有负数 public class UnsafeBuyTicket { public static void main(String[] args) {
阅读全文
摘要:线程同步(多个线程操作同一资源) 并发:同一对象被多个线程同时操作 上万人同时抢100张票 两个银行同时取钱 线程同步:(排队) 线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入对象的等待池形成队列,等待前面线程使用完毕,下一线程再使用 解决线程不安全的问题:队列+锁 由于同一进程的多
阅读全文
摘要:守护线程_daemon 线程分为用户线程和守护线程 虚拟机必须确保用户线程(main)执行完毕 虚拟机不用等待守护线程(gc)执行完毕 如:后台记录操作日志,监控内存,垃圾回收等等 测试案例: package multithreading; // 测试守护线程 // 上帝守护你 public cla
阅读全文
摘要:线程优先级_priority Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行 线程的优先级用数字表示,范围从1~10 Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thread
阅读全文
摘要:线程状态Thread.State 线程状态。线程可以处于下列状态之一: NEW 至今尚未启动的线程处于这种状态。 RUNNABLE 正在 Java 虚拟机中执行的线程处于这种状态。 BLOCKED 受阻塞并等待某个监视器锁的线程处于这种状态。 WAITING 无限期地等待另一个线程来执行某一特定操作
阅读全文
摘要:线程强制执行_join Join合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞 可以想象为插队 测试案例: package multithreading; // 测试Join方法 // 想象为插队 public class TestJoin implements Runnable { @
阅读全文
摘要:线程礼让_yield 礼让线程,让当前正在执行的线程暂停,但不阻塞 将线程从运行状态转为就绪状态 让cpu重新调度,礼让不一定成功!看CPU心情 测试案例: package multithreading; // 测试礼让线程 // 礼让不一定成功,看cpu心情 public class TestYi
阅读全文
摘要:线程休眠_sleep sleep(时间)指定当前线程阻塞的毫秒数; sleep存在异常InterruptedException; sleep时间到达后线程进入就绪状态; sleep可以模拟网络延时,倒计时等; 每一个对象都有一个锁,sleep不会释放锁; 模拟网络延时: package multit
阅读全文
摘要:停止线程 不推荐使用JDK提供的stop(),destroy()方法——已废弃 推荐线程自己停下来 建议使用一个标志位进行终止变量,当flag=false,则终止线程 代码实现: package multithreading; // 测试stop // 1.建议线程正常停止——>利用次数,不建议死循
阅读全文
摘要:线程底部实现原理:静态代理模式 案例: package multithreading; import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput; // 静态代理模式总结 // 真实对象和代理对象都要实现同一接口 // 代理对象要代理真实角色
阅读全文
摘要:线程创建 三种创建方式 1. 继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用start()方法启动线程 线程不一定执行,CPU按排调度 package multithreading; // 创建线程方式一:继承Thread类,重写run()
阅读全文
摘要:多线程案例:龟兔赛跑-Race 前置条件: 首先来个赛道距离,然后要离终点越来越近 判断比赛是否结束 打印出胜利者 龟兔赛跑开始 故事中是乌龟赢了,兔子需要睡觉,所以我们来模拟兔子睡觉 乌龟赢得比赛 代码: package multithreading; // 模拟龟兔赛跑 public class
阅读全文
摘要:Java多线程操作同一个对象 发现问题:多个线程操作同一资源的情况下,线程不安全,数据紊乱 代码: package multithreading; // Java多线程操作同一个对象 // 买火车票的例子 // 发现问题:多个线程操作同一资源的情况下,线程不安全,数据紊乱 public class
阅读全文
摘要:网络图片下载,commons IO包 导入commons-io包 commons-io包下载路径: http://www.apache.org/ 项目下新建lib包,将lib包添加为库 实现多线程下载网络图片 代码: package multithreading; import org.apache
阅读全文
摘要:线程,进程,多线程简介 线程:Thread,是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 进程:Process,是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程一般由程序,数据集合和进程控制块三部分组
阅读全文
摘要:JavaGUI画笔工具的使用 package GUI; import java.awt.*; public class TestPaint { public static void main(String[] args) { new MyPaint().LoadFrame(); } } class
阅读全文
摘要:JavaGUI输入框事件监听的使用 package GUI; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TestTextField
阅读全文
摘要:OOP面向对象程序设计原则 开闭原则(Open Close Principle) 对扩展开放,对修改关闭 里氏代换原则(Liskov Substitution Principle) 继承必须确保超累所拥有的性质在子类中仍然成立 依赖倒转原则(Dependence Inversion Principl
阅读全文
摘要:设计模式简介 什么是设计模式 设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验。使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性。 可复用性,可维护性,可读性,健壮性,安全性 1995年,GoF(Gang of Four,四人帮)合作出版《设
阅读全文
摘要:布局管理器练习 预期效果: 代码实现: package GUI; import java.awt.*; public class TestLayoutDemo { public static void main(String[] args) { Frame frame = new Frame();
阅读全文
摘要:三种布局管理器 流式布局FlowLayout package GUI; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class TestFlowLa
阅读全文
摘要:面板Panel的使用 待解决问题: 1.设计模式:适配器模式 2.frame.setLayout(null); package GUI; import javax.swing.*; import java.awt.*; import java.awt.event.WindowAdapter; imp
阅读全文
摘要:GUI编程(淘汰) GUI编程怎么学? 这是什么 它怎么玩 该如何去在我们平时运用 class —— 可阅读 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1,简介 GUI的核心技术:AWT(抽象窗口工具包,早期编写图形界面应用程序的包。)Swing (为解
阅读全文

浙公网安备 33010602011771号