笔记
文章平均质量分 74
Cvv的进步记录
这个作者很懒,什么都没留下…
展开
-
java从零开始 day40
3.类的加载与ClassLoader 3.1Java内存分析 3.2类的加载 深刻理解类加载 //类加载 public class Demo07_ClassLoader { public static void main(String[] args) { A a = new A(); System.out.println(A.m); /** * 1. 加载到内存,会产生一个类对应Class对象 ...原创 2022-05-29 23:31:33 · 98 阅读 · 0 评论 -
java从零开始 day39(注解与反射)
一、注解 1.注解入门 //什么是注解 public class Demo01_Annotation extends Object { //@Override就是一个注解 @Override public String toString() { return super.toString(); } } 2.内置注解 // 什么是注解 public class Demo01_Annotation extends Object { ...原创 2022-05-27 18:01:52 · 78 阅读 · 0 评论 -
java从零开始 day38
五、线程通信问题 生产者消费者模式的问题 1.线程通信方法 2.线程通信问题解决方式 /** * 测试:生产者消费者模型-->利用缓冲区解决:管程法 */ public class Demo33_ThreadPC { public static void main(String[] args) { SynContainer synContainer = new SynContainer(); new Producer(...原创 2022-05-15 18:56:47 · 123 阅读 · 0 评论 -
java 从零开始 day37
5.死锁 案例: /** * 死锁:多个线程互相抱着对方需要的资源,然后形成僵持 * 解决:一个锁只锁一个对象 */ class Demo31_DeadLock { public static void main(String[] args) { Makeup makeup = new Makeup(0, "灰姑娘"); Makeup makeup1 = new Makeup(1, "白雪公主"); makeup.start(); ...原创 2022-05-14 22:57:51 · 100 阅读 · 0 评论 -
java从零开始 day36
四、线程同步 1.介绍 **多个线程操作同一个资源 ** 2.不安全的线程案例 //不安全买票 public class Demo24_UnsafeBuyTicket { public static void main(String[] args) { BuyTicket buyTicket = new BuyTicket(); new Thread(buyTicket, "张三").start(); new Th...原创 2022-05-14 22:47:54 · 72 阅读 · 0 评论 -
java从零开始 day35
三、线程状态 1.线程五大状态: 2.线程方法 2.1停止线程 案例: /** * 测试stop * 1.建议线程正常停止-->利用次数,不建议死循环 * 2.建议使用标志位-->设置一个标志位 * 3.不要使用stop或者destroy等过时或者JDK不建议使用的方法 */ public class Demo15_StopThread implements Runnable { // 1. 设置一个标志位 private boole...原创 2022-05-12 22:29:58 · 64 阅读 · 0 评论 -
java从零开始 day34
2.静态代理 实现: 结婚案例 /** * 静态代理:结婚案例 */ public class Demo7_StaticProxy { public static void main(String[] args) { WeddingCompany weddingCompany = new WeddingCompany(new You()); weddingCompany.happyMarry(); } } //结婚 interface Ma...原创 2022-05-12 22:22:54 · 53 阅读 · 0 评论 -
java从零开始 day33
1.2实现Runnable接口 推荐使用Runnable对象,因为Java单继承的局限性 自定义线程类实现Runnable接口 实现run()方法,编写线程执行体 创建线程对象,调用start()方法启动对象 实现 public class Demo3_CreateRunnable implements Runnable { @Override public void run() { //run方法线程体 for (int i = 0; i &l...原创 2022-05-09 22:39:31 · 60 阅读 · 0 评论 -
java从零开始 day32
一、线程简介 1.多任务 现实中太多这样同时做多件事情的例子了,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情。 2.多线程 原来是一条路,慢慢因为车太多了,道路阻塞,效率极低。为了提高使用的效率,能够充分利用道路,于是加了多个车道。从此,妈妈再也不用担心道路阻塞了。 3.程序.进程.线程 4.Process与Thread 说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。 而进程则是执行程序的依次执.原创 2022-05-06 22:09:59 · 65 阅读 · 0 评论 -
java从零开始 day31
初识Tomcat 服务端: 自定义 C Tomcat服务器 S:Java后端开发 客户端: 自定义 C 浏览器 B 1.7 UDP 数据报包(DatagramSocket)发送与接收 发送端: package com.mine.lesson3; import java.net.*; //不需要连接服务器 public class UdpClientDemo01 { public static void main(String[] args) throws Exception { ..原创 2022-05-05 22:30:36 · 1095 阅读 · 0 评论 -
java 从零开始 day30
1.5 通信协议 协议:约定,就好比我们现在说的是普通话。 **网络通信协议:**速率,传输码率,传输控制…… **问题:**非常的复杂? 大事化小:分层! TCP/IP协议簇: 重要的两个协议: TCP:用户传输协议 UDP:用户数据报协议 出名的协议:TCP,IP(网络互连协议),实际上是一组协议 TCP,UDP对比: TCP:打电话 连接:稳定 三次握手 四次挥手 客户端,服务端 传输完成,释放连接、效率低 UDP:发短信 连接:不稳定 客户端,服务端没有明显的界限 不管有原创 2022-05-03 18:26:08 · 59 阅读 · 0 评论 -
java从零开始 day29
1.1 概述 计算机网络: 计算机网络是指将地理位置不同的计算机及其外部部件,通过通信线路连接起来,在网络编程协议下,实现不同计算机之间的信息共享以及信息交流的计算机系统。 网络编程的目的: 传播交流信息(无线电台):数据交换,通信。 想要达到这些效果需要做什么: 如何准确地定位网络上的一台主机 192.168.16.124:端口,定位到这个计算机上的某个资源 找到了这个主机,如何传输数据呢? javaweb:网页编程 B/S 网络编程:TCP/IP C/S 1.2 网络通信的要素 TCP原创 2022-05-01 20:35:39 · 777 阅读 · 0 评论 -
java从零开始 day28
3.3标签 图标和图片图标 package com.ym.lesson04; import javax.swing.*; import java.awt.*; public class IconDemo extends JFrame implements Icon { private int width; private int height; public IconDemo(){} public IconDemo(int width,int height){ ...原创 2022-04-26 23:22:15 · 454 阅读 · 0 评论 -
java从零开始 day27
键盘监听 package com.ym.lesson03; import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; public class KeyListenerTest { public static void main(String[] args) { new KeyFrame(); } } class KeyFrame extends Frame{...原创 2022-04-25 23:03:22 · 170 阅读 · 0 评论 -
java从零开始 day26
画笔 package Demo02; import java.awt.*; public class TestPanit { public static void main(String[] args) { new MyPaint().loadFrame(); } } class MyPaint extends Frame{ public void loadFrame(){ setBounds(200,200,600,400); ...原创 2022-04-24 16:40:31 · 295 阅读 · 0 评论 -
java从零开始 day25
2.4事件监听 package com.ym.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 ActionEventTest { public static void ma..原创 2022-04-23 19:20:03 · 86 阅读 · 0 评论 -
java从零开始 day24 (GUI编程)
GUI编程 1,简介 图形用户界面,Graphical User Interface,又称图形用户接口,是指采用图形方式显示的计算机操作用户界面。 GUI的核心技术:AWT,Swing 2.Awt 2.1 AWT简介 AWT:Abstract Window Toolkit,抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的GUI的基本工具 包含了很多类和接口 元素:窗口,按钮,文本框 java.awt 2.2组件与容器 1.Frame pa原创 2022-04-20 22:12:20 · 329 阅读 · 0 评论 -
java从零开始 day23
package io; /* * 作用: * ByteArrayInputStream是将数据写入到内存输入流中,通过构造函数实现的,而用read()方法来读取内存输入流的数据 * ByteArrayOutputStream是将数据写入到内存输出流,通过write()方法实现的 * * 我们可以这样理解上面的过程,将程序和内存分为两层。 * ByteArrayInputStream就是把程序这一层的数据保存进...原创 2022-04-15 18:48:39 · 49 阅读 · 0 评论 -
java从零开始 day22(io流)
Java IO 也称为IO流,IO = 流,它的核心就是对文件的操作,对于 字节 、字符类型的输入和输出流。 IO是指对数据流的输入和输出,也称为IO流,IO流主要分为两大类,字节流和字符流。字节流可以处理任何类型的数据,如图片,视频等,字符流只能处理字符类型的数据。 IO流的本质是数据传输,并且流是单向的。 常用的字节流FileInputStream、FileOutputStream、ObjectInputStream、ObjectOutputStream。 IO分阻塞型IO和非阻塞型IO(NIO)阻.原创 2022-04-13 21:16:33 · 71 阅读 · 0 评论 -
java从零开始 day21
六、异常机制 1.什么是异常 2.异常体系结构 3.java异常处理机制 4.处理异常 5.自定义异常 6.总结 1.什么是异常 ·实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了。 .软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情..原创 2022-04-11 11:03:46 · 335 阅读 · 0 评论 -
java从零开始 day20
1.接口 ·普通类:只有具体实现 •抽象类:具体实现和规范(抽象方法)都有! •接口:只有规范!(自己无法写方法~专业的约束!约束和实现分离:面向接口编程) 接口就是规范,定义的是一组规则,体现了现实世界中 “如果你是…则必须能…”的思想。如果你是天使, 则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。 •接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。 OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具原创 2022-04-10 18:11:49 · 48 阅读 · 0 评论 -
java从零开始 day19
1.static关键字详解 static修饰的含义隶属于类,而不是对象,是一个公共的存储内存空间,无论是方法还是变量,加了static就是静态的,可以不需要创建对象,直接使用类名+属性名or方法名进行调用。 静态导包: 父类被final修饰了 子类就不能继承了。 static方法属于类不属于实例 final常量不能被继承,private私有类不能重写。 2.抽象类 abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该...原创 2022-04-10 13:37:01 · 204 阅读 · 0 评论 -
java从零开始 day18
1.多态 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。 一个对象的实际类型是确定的, 但可以指向对象的引用的类型有很多 •多态存在的条件 1.有继承关系 2.子类重写父类方法 3.父类引用指向子类对象 •注意:多态是方法的多态,属性没有多态性。 • instanceof 总结: 2.instanceof和类型转换: 编译看左,执行看右。 类型转换: person里有run方法 student里有go方法 总结: ...原创 2022-04-09 20:33:37 · 47 阅读 · 0 评论 -
java从零开始 day17
1.封装详解 该露的露,该藏的藏 我们程序设计要追求高内聚,低耦合。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉:低耦合:仅最露少量的方法给外部使用。 封装(数据的隐藏), 通常,应禁止直接访问一个对象中数据的实际表示, 而应通过操作接口来访问,这称为信息隐藏, •记住这句话就够了:属性私有,get/set alt+insert 自动生成get set方法 封装的意义: 2.继承: 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。 •extands的意思是“扩展”..原创 2022-04-09 11:29:09 · 57 阅读 · 0 评论 -
java 从零开始 day16
1.类与对象的关系 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物。 •动物、植物、手机、电脑… ·Person类、pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为 对象是抽象概念的具体实例 •张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。 •能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。 我们可以将这些思想转换为代码实现! 什么是面向对象?: 面向对象编程(Object-Oriented.原创 2022-04-08 19:32:23 · 207 阅读 · 0 评论 -
java从零开始 day15(面向对象)
五、面向对象 1.初识面向对象 2.方法回顾和加深 3.对象的创建分析 4.面向对象的三大特征 5.抽象类和借口 6.内部类及OOP实战 1.面向过程&面向对象 •面向过程思想 •步骤清晰简单,第一步做什么,第二步做什么⋯ •面对过程适合处理一些较为简单的问题 •面向对象思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索. •面向对象适合处理复杂的问题,适合处理需要多人协作的问题! •对.原创 2022-04-07 17:52:05 · 202 阅读 · 0 评论 -
java从零开始 day14
3.数组的使用 For-Each循环 数组作方法入参 数组作返回值 多维数组: 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。 •二维数组 int a[][]=new int[2][5]; •解析:以上二维数组a 可以看成一个两行五列的数组。 •思考:多维数组的使用? num[1] [0]; 实例(二维数组的使用): Arrays类: ·数组的工具类java.util.Arrays •由于数组对象本身并没有什么方法可...原创 2022-04-07 17:26:42 · 693 阅读 · 0 评论 -
java从零开始 day13
四、数组 目录:1.数组概述 2.数组声明创建 3.数组使用 4.多维数组 5.Arrays类 6.稀疏数组 1.数组概述 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。 2.数组声明创建 实例: 内存分析: Java内存分析: 先在栈声明,才能在堆里开辟空间。 当我们声明一个数组之后,会存放在栈中,当我们向数组中存放值的时候会在...原创 2022-04-06 20:15:59 · 158 阅读 · 0 评论 -
java从零开始 day12
1.命令行传参 有时候你希望运行一个程序时候在传递给它消息。这就要靠传递命令行参数给main()函数实现。 编译的时候不用加包名,执行的时候要写上包的名。 2.可变参数 JDK1.5 开始,Java支持传递同类型的可变参数给一个方法。 在方法声明中,在指定参数类型后加一个省略号(…)。 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。 3.递归 •A方法调用B方法,我们很容易理解! •递归就是:A方法调用A方法!就是自己调用自己 •...原创 2022-04-06 15:10:18 · 59 阅读 · 0 评论 -
java从零开始 day11
三、Java方法 目录: 1、何谓方法 2、方法的定义及调用 3、方法重载 4、命令行传参 5、可变参数 6、递归 1.何谓方法 System.out.println0,那么它是什么呢? Java方法是语句的集合,它们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展. 回顾:原创 2022-04-04 22:40:25 · 53 阅读 · 0 评论 -
java从零开始 day10
1. break continue break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中利余的语句。(break语句也在switch语句中使用) continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句接着进行下一次是否执行循环的判定。 关于goto关键字 goto关健字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而,在break和continu原创 2022-04-04 14:52:18 · 226 阅读 · 0 评论 -
java从零开始 day9
1.循环结构 while循环 do…while循环 for循环 在Java5中引入了一种主要用于数组的增强型for循环 while循环: while是最基本的循环,它的结构为: while(布尔表达式){ //循环内容 } •只要布尔表达式为 true,循环就会一直执行下去。 •我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。 •少部分情况需要循环一直执行,比如服务器的请求响应监听等。 •循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。原创 2022-04-03 14:00:38 · 57 阅读 · 0 评论 -
java从零开始 day8
1.顺序结构 结构 • JAVA的县本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。 顺序结构是最简单的算法结构. 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。 2.选择结构 if单选择结构 if双选择结构 if多选择结构 嵌套的if结构 switch多选择结构 if单选择结构: 实例: if双选择结构: 实例: if多选择结构: 实例: if语句中至多有1个else语句,else语句在所有的el原创 2022-04-02 18:24:42 · 263 阅读 · 0 评论 -
java从零开始 day7
二、Java流程控制 目录: 1.用户交互Scanner 2.顺序结构 3.选择结构 4.循环结构 5.break&continue 6.练习 1.Scanner对象 之前我们学的基本语法中我们井没有实现程序和人的致互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner 是Java5 的新特征,我们可以通过Scanner 类来获取用户的输入。 令基本语法: Scanner s= new Scanner (system.in) ;//可以通过输入new原创 2022-04-02 17:13:55 · 48 阅读 · 0 评论 -
java从零开始 day6
1.包机制 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。 包语句的语法格式为: package pkg1[.pkg2[. pkg3…]]; 一般利用公司域名倒置作为包名: 为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用“import”语句可完成此功能 Import package1[.package2…].(classname|); 包的本质就是文件夹。 //如果包下有很多类,导包时可用“”代替所有类。 2.JavaDoc javadoc命令是用来生成自己A原创 2022-04-01 17:39:40 · 417 阅读 · 0 评论 -
java从零开始 day5
1.基本运算符: Ctrl+D:复制到下一行 计算中输出小数的时候别忘记强制转换 // + - * / % int a=10; int b=20; system.out.println(a/(double)b); 输出:0.5 (否则会是0) 不同类型的混合运算中自动会升为其中类型的最高类型(比如有long就是long,double就是double,但大多数情况下是int) // ++ - -(一元运算符) a++是先赋值再自加 ++a是先自己啊再赋值( - -同理) 幂运算要用math数学类 Math.原创 2022-03-31 21:35:56 · 216 阅读 · 0 评论 -
java从零开始 day4
1.类型转换 由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。 (byte short char)—int—long—float—double 低——————————————————高 运算中,不同类型的数据显转换为同一类型,然后进行运算。 强制类型转换(高到低): 例如 int i=128; byte b=(byte)i; 输出:128 -128 (原因byte类型是-128-127) 自动转换(低到高):什么也不用加,直接转。 注意点: 1.不能对布尔值进行转换 2.不能把对象类型原创 2022-03-30 20:05:35 · 259 阅读 · 0 评论 -
java从零开始 day3
今天开始进入java正题 一、java基础语法 1.注释 :java中的注释有三种:单行注释、多行注释、文档注释(javadoc). 单行注释:// 多行注释:/( 注释内容)/ 文档注释:/** *@Description (干了什么事) */@author 某某某 */ 2.标识符和关键字 关键字: 标识符:是自己起的,比如class后面就是类名,int后面的就是变量名 “void main” main就是方法名。 java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。 所有的标识符都原创 2022-03-29 21:51:48 · 302 阅读 · 0 评论 -
java从零开始 day2
1.java程序运行机制 编译型:直接“翻译” 解释型:一句一句地“翻译”原创 2022-03-29 20:47:27 · 78 阅读 · 0 评论 -
java从零开始 day1
1.常用Dos命令 #盘符切换 #查看当前目录下的所有文件 dir #切换目录 cd (change directory) #清理屏幕 cls (clear screen) #退出终端 exit #查看电脑ip ipconfig #打开应用 calc mspaint notepad #ping 命令 ping www.baidu.com #文件操作 cd /d +(路径) {进入路径} md 目录名 (创建文件夹) rd 目录名 (删除文件夹) cd>文件名 (创建文件txt) del 文件名 (删原创 2022-03-28 20:42:40 · 306 阅读 · 0 评论