自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 java从零开始 day40

3.类的加载与ClassLoader3.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 83

原创 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 67

原创 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 110

原创 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 88

原创 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 61

原创 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 52

原创 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 40

原创 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 43

原创 java从零开始 day32

一、线程简介1.多任务现实中太多这样同时做多件事情的例子了,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情。2.多线程原来是一条路,慢慢因为车太多了,道路阻塞,效率极低。为了提高使用的效率,能够充分利用道路,于是加了多个车道。从此,妈妈再也不用担心道路阻塞了。3.程序.进程.线程4.Process与Thread说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是执行程序的依次执.

2022-05-06 22:09:59 51

原创 java从零开始 day31

初识Tomcat服务端:自定义 CTomcat服务器 S:Java后端开发客户端:自定义 C浏览器 B1.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 1073

原创 java 从零开始 day30

1.5 通信协议协议:约定,就好比我们现在说的是普通话。**网络通信协议:**速率,传输码率,传输控制……**问题:**非常的复杂?​ 大事化小:分层!TCP/IP协议簇:重要的两个协议:TCP:用户传输协议UDP:用户数据报协议出名的协议:TCP,IP(网络互连协议),实际上是一组协议TCP,UDP对比:TCP:打电话连接:稳定三次握手 四次挥手客户端,服务端传输完成,释放连接、效率低UDP:发短信连接:不稳定客户端,服务端没有明显的界限不管有

2022-05-03 18:26:08 48

原创 java从零开始 day29

1.1 概述计算机网络:计算机网络是指将地理位置不同的计算机及其外部部件,通过通信线路连接起来,在网络编程协议下,实现不同计算机之间的信息共享以及信息交流的计算机系统。网络编程的目的:传播交流信息(无线电台):数据交换,通信。想要达到这些效果需要做什么:如何准确地定位网络上的一台主机 192.168.16.124:端口,定位到这个计算机上的某个资源找到了这个主机,如何传输数据呢?javaweb:网页编程 B/S网络编程:TCP/IP C/S1.2 网络通信的要素TCP

2022-05-01 20:35:39 753

原创 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 444

原创 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 157

原创 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 286

原创 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 70

原创 java从零开始 day24 (GUI编程)

GUI编程1,简介图形用户界面,Graphical User Interface,又称图形用户接口,是指采用图形方式显示的计算机操作用户界面。GUI的核心技术:AWT,Swing2.Awt2.1 AWT简介AWT:Abstract Window Toolkit,抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的GUI的基本工具包含了很多类和接口元素:窗口,按钮,文本框java.awt2.2组件与容器1.Framepa

2022-04-20 22:12:20 319

原创 java从零开始 day23

package io;/** 作用:* ByteArrayInputStream是将数据写入到内存输入流中,通过构造函数实现的,而用read()方法来读取内存输入流的数据* ByteArrayOutputStream是将数据写入到内存输出流,通过write()方法实现的* * 我们可以这样理解上面的过程,将程序和内存分为两层。* ByteArrayInputStream就是把程序这一层的数据保存进...

2022-04-15 18:48:39 35

原创 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 57

原创 java从零开始 day21

六、异常机制1.什么是异常2.异常体系结构3.java异常处理机制4.处理异常5.自定义异常6.总结1.什么是异常·实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了。.软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情..

2022-04-11 11:03:46 324

原创 java从零开始 day20

1.接口·普通类:只有具体实现•抽象类:具体实现和规范(抽象方法)都有!•接口:只有规范!(自己无法写方法~专业的约束!约束和实现分离:面向接口编程)接口就是规范,定义的是一组规则,体现了现实世界中 “如果你是…则必须能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。•接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具

2022-04-10 18:11:49 35

原创 java从零开始 day19

1.static关键字详解static修饰的含义隶属于类,而不是对象,是一个公共的存储内存空间,无论是方法还是变量,加了static就是静态的,可以不需要创建对象,直接使用类名+属性名or方法名进行调用。静态导包:父类被final修饰了 子类就不能继承了。static方法属于类不属于实例 final常量不能被继承,private私有类不能重写。2.抽象类abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该...

2022-04-10 13:37:01 192

原创 java从零开始 day18

1.多态即同一方法可以根据发送对象的不同而采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多•多态存在的条件1.有继承关系2.子类重写父类方法3.父类引用指向子类对象•注意:多态是方法的多态,属性没有多态性。• instanceof总结:2.instanceof和类型转换:编译看左,执行看右。类型转换:person里有run方法 student里有go方法总结:...

2022-04-09 20:33:37 36

原创 java从零开始 day17

1.封装详解该露的露,该藏的藏我们程序设计要追求高内聚,低耦合。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉:低耦合:仅最露少量的方法给外部使用。封装(数据的隐藏),通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏,•记住这句话就够了:属性私有,get/setalt+insert 自动生成get set方法封装的意义:2.继承:继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。•extands的意思是“扩展”..

2022-04-09 11:29:09 38

原创 java 从零开始 day16

1.类与对象的关系类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物。•动物、植物、手机、电脑…·Person类、pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为对象是抽象概念的具体实例•张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。•能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。我们可以将这些思想转换为代码实现!什么是面向对象?:面向对象编程(Object-Oriented.

2022-04-08 19:32:23 197

原创 java从零开始 day15(面向对象)

五、面向对象1.初识面向对象2.方法回顾和加深3.对象的创建分析4.面向对象的三大特征5.抽象类和借口6.内部类及OOP实战1.面向过程&面向对象•面向过程思想•步骤清晰简单,第一步做什么,第二步做什么⋯•面对过程适合处理一些较为简单的问题•面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索.•面向对象适合处理复杂的问题,适合处理需要多人协作的问题!•对.

2022-04-07 17:52:05 193

原创 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 677

原创 java从零开始 day13

四、数组目录:1.数组概述2.数组声明创建3.数组使用4.多维数组5.Arrays类6.稀疏数组1.数组概述数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。2.数组声明创建实例:内存分析:Java内存分析:先在栈声明,才能在堆里开辟空间。当我们声明一个数组之后,会存放在栈中,当我们向数组中存放值的时候会在...

2022-04-06 20:15:59 147

原创 java从零开始 day12

1.命令行传参有时候你希望运行一个程序时候在传递给它消息。这就要靠传递命令行参数给main()函数实现。编译的时候不用加包名,执行的时候要写上包的名。2.可变参数JDK1.5 开始,Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后加一个省略号(…)。一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。3.递归•A方法调用B方法,我们很容易理解!•递归就是:A方法调用A方法!就是自己调用自己•...

2022-04-06 15:10:18 43

原创 java从零开始 day11

三、Java方法目录:1、何谓方法2、方法的定义及调用3、方法重载4、命令行传参5、可变参数6、递归1.何谓方法System.out.println0,那么它是什么呢? Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展.回顾:

2022-04-04 22:40:25 42

原创 java从零开始 day10

1. break continuebreak在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中利余的语句。(break语句也在switch语句中使用)continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句接着进行下一次是否执行循环的判定。关于goto关键字goto关健字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而,在break和continu

2022-04-04 14:52:18 215

原创 java从零开始 day9

1.循环结构while循环do…while循环for循环在Java5中引入了一种主要用于数组的增强型for循环while循环:while是最基本的循环,它的结构为:while(布尔表达式){//循环内容}•只要布尔表达式为 true,循环就会一直执行下去。•我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。•少部分情况需要循环一直执行,比如服务器的请求响应监听等。•循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。

2022-04-03 14:00:38 47

原创 java从零开始 day8

1.顺序结构结构• JAVA的县本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构.语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。2.选择结构if单选择结构if双选择结构if多选择结构嵌套的if结构switch多选择结构if单选择结构:实例:if双选择结构:实例:if多选择结构:实例:if语句中至多有1个else语句,else语句在所有的el

2022-04-02 18:24:42 249

原创 java从零开始 day7

二、Java流程控制目录:1.用户交互Scanner2.顺序结构3.选择结构4.循环结构5.break&continue6.练习1.Scanner对象之前我们学的基本语法中我们井没有实现程序和人的致互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner 是Java5 的新特征,我们可以通过Scanner 类来获取用户的输入。令基本语法:Scanner s= new Scanner (system.in) ;//可以通过输入new

2022-04-02 17:13:55 40

原创 java从零开始 day6

1.包机制为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。包语句的语法格式为:package pkg1[.pkg2[. pkg3…]];一般利用公司域名倒置作为包名:为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用“import”语句可完成此功能Import package1[.package2…].(classname|);包的本质就是文件夹。//如果包下有很多类,导包时可用“”代替所有类。2.JavaDocjavadoc命令是用来生成自己A

2022-04-01 17:39:40 405

原创 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 206

原创 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 248

原创 java从零开始 day3

今天开始进入java正题一、java基础语法1.注释:java中的注释有三种:单行注释、多行注释、文档注释(javadoc).单行注释://多行注释:/( 注释内容)/文档注释:/***@Description (干了什么事)*/@author 某某某*/2.标识符和关键字关键字:标识符:是自己起的,比如class后面就是类名,int后面的就是变量名 “void main” main就是方法名。java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。所有的标识符都

2022-03-29 21:51:48 280

原创 java从零开始 day2

1.java程序运行机制编译型:直接“翻译”解释型:一句一句地“翻译”

2022-03-29 20:47:27 58

原创 java从零开始 day1

1.常用Dos命令#盘符切换#查看当前目录下的所有文件 dir#切换目录 cd (change directory)#清理屏幕 cls (clear screen)#退出终端 exit#查看电脑ip ipconfig#打开应用calcmspaintnotepad#ping 命令 ping www.baidu.com#文件操作cd /d +(路径) {进入路径}md 目录名 (创建文件夹)rd 目录名 (删除文件夹)cd>文件名 (创建文件txt)del 文件名 (删

2022-03-28 20:42:40 291

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除