- 博客(37)
- 收藏
- 关注
原创 Day 241 注解与反射(4)
注解与反射(4)反射什么时候会发生类初始化类的主动引用(一定会发生类的初始化)当虚拟机启动,先初始化main方法所在的类new一个类的对象调用类的静态成员(除了final常量)和静态方法使用java.lang.reflect包的方法对类进行反射调用当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类类的被动引用(不会发生类的初始化)当访问一个静态域时,只有真正声明这个域的类才会被初始化。如:当通过子类引用父类的静态变量,不会导致子类初始化通过数组定义类引用,不会触发此类的
2022-03-17 21:44:12
1046
原创 Day 238 注解与反射(3)
注解与反射(3)反射哪些类型可以有class对象class:外部类,成员(成员内部类,静态内部类),局部内部类,匿名内部类。interface:接口[]:数组enum:枚举annotation:注解@interfaceprimitive type:基本数据类型voidpackage com.yangxu.Annotation.reflection;import java.lang.annotation.ElementType;public class Test03 { p
2022-03-14 18:19:52
1466
原创 Day 231 注解与反射(2)
注解与反射(2)区分静态语言和动态语言动态语言是一类在运行时可以改变其结构的语言:例如新的函数对象、甚至代码可以被引进,已有的函数可以被删除或是具他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。主要动态语言:Object-C、C#、JavaScript、PHP、Python等。静态语言与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。Java不是动态语言,但Java可以称之为“准动态语言”。即Java有一定的动态性,我们可以利用反射机制
2022-03-07 17:29:09
121
原创 Day 229 注解与反射(1)
注解与反射(1)什么是注解Annotation是从JDK5.0开始引入的新技术.Annotation的作用:不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取.Annotation的格式:注解是以"@注释名"在代码中存在的,还可以添加一些参数值﹐例如:@SuppressWarnings(value=“unchecked”).Annotation在哪里使用?可以附加在package , class , method ,
2022-03-07 17:26:47
238
原创 Day 227 网络编程(3)
网络编程(3)UDP实现简单的聊天接收端package com.yangxu.chat;import java.net.DatagramPacket;import java.net.DatagramSocket;public class UdpReceiver { public static void main(String[] args) throws Exception { DatagramSocket socket = new DatagramSocket(66
2022-03-04 19:21:10
350
原创 Day 173 网络编程(2)
网络编程(2)通信协议网络通信协议:速率,传输码率,代码结构,传输控制…TCP/IP协议簇:实际上是一组协议TCP:用户传输协议UDP:用户数据报协议IP:网络互连协议TCP和UDP对比TCP:连接、稳定三次握手、四次断开客户端、服务端传输完成、释放连接UDP:不连接、不稳定客户端、服务端:没有明确界限不管有没有准备好,都可以发TCP客户端连接服务器Socket发送消息package com.yangxu.net;import java.io.IOE
2022-01-07 16:31:45
1163
原创 Day 116 网络编程(1)
网络编程(1)概述网络编程中有两个主要的问题:如何准确的定位到网络上的一台或者多台主机找到主机之后如何进行通信网络编程中的要素IP和端口号网络通信写协议IPIP地址:InetAddress定位一台网络计算机127.0.0.1:本机localhostIP地址分类IPv4 /IPv6公网-私网package Net.lesson01;import java.net.InetAddress;import java.net.UnknownHostException;
2021-11-11 19:44:54
1049
原创 Day 103 多线程(5)
多线程(5)Lock锁从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前应先获得Lock对象ReentrantLock类实现了Lock,它拥有与synchronized相同的并发性和内存语义,在实现线程安全的控制中,比较常用的是Ree
2021-11-01 19:44:56
54
原创 多线程(4)
多线程(4)同步方法及同步块由于我们可以通过private关键字来保证数据对象只能被方法访问﹐所以我们只需要针对方法提出一套机制,这套机制就是synchronized关键字,它包括两种用法:synchronized方法和synchronized块.同步方法:public synchronized void method(int args){}synchronized方法控制对“对象”的访问﹐每个对象对应一把锁﹐每个synchronized方法都必须获得调用该方法的对象的锁才能执行,否则线程会阻塞,方
2021-10-27 21:53:19
56
原创 多线程(3)
多线程(3)线程礼让让当前正在执行的线程暂停,但不阻塞将线程从运行状态转为就绪状态让cpu重新调度,礼让不一定成功,看cpu心情package thread.State;//测试礼让线程//礼让不一定成功public class TestYield { public static void main(String[] args) { MyYield myYield = new MyYield(); new Thread(myYield,"a").
2021-10-27 21:52:42
54
原创 多线程(2)
多线程(2)package thread;public class RaceBetweenRabbitAndTortoise implements Runnable{ //模拟龟兔赛跑 private static String winner; @Override public void run() { for (int i = 0; i <= 100; i++) { //模拟休息 if (Thre
2021-10-18 19:30:07
103
原创 Day 55 多线程(1)
多线程(1)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-blA15lh9-1631615737858)(C:\Users\Lenovo\Pictures\Saved Pictures\屏幕截图 2021-09-13 194652.png)]本章核心概念线程就是独立的执行路径;在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程;main()称之为主线程,为系统的入口,用于执行整个程序;在一个进程中,如果开辟了多个线程,线程的运行由调度器安
2021-09-14 18:36:08
82
原创 Day N GUI编程(3)
GUI编程(3)SwingJFrame窗体package GUI.lesson01.Lesson04;import javax.swing.*;import java.awt.*;public class JFrameDemo { public static void main(String[] args) { new MyJFrame().init(); }}class MyJFrame extends JFrame{ public void
2021-08-27 11:46:20
59
原创 Day N GUI编程(2)
GUI编程(2)事件监听package GUI.lesson01.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 TestAction { public
2021-08-25 13:36:30
75
原创 Day 30 GUI编程(1)
GUI编程(1)组件:窗口弹窗面板文本框列表框按钮图片监听事件鼠标键盘事件破解工具简介:GUI的核心技术:Swing AWTGUI不流行的原因:界面不美观需要jre环境AWT包含了很多类和接口GUI:图形用户界面编程元素:窗口、按钮、文本框文件位置:java.awt[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9rl5PgDd-1629599027323)(C:\Users\Lenovo\Pictures\Saved P
2021-08-22 10:24:22
70
原创 Day 26 IO框架(3)
IO框架(3)FileFilter接口public interface FileFilterboolean accept (File pathname)当调用File类中的listFiles()方法时,支持传入FileFilter接口接口实现类,对获取文件进行过滤,只有满足条件的文件的才可出现在listFiles()的返回值中。package IO;import java.io.File;import java.io.FileFilter;import java.util.Date;
2021-08-16 16:23:45
85
原创 Day 24 IO框架(2)
IO框架(2)字符编码ISO-8859-1:收录除ASCII外,还包括西欧、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。UTF一8:针对Unicode码表的可变长度字符编码GB2312:简体中文GBK:简体中文、扩充BIG5:台湾,繁体中文当编码方式和解码方式不一致时,会出现乱码字符流字符流的父类(抽象类):Reader:字符输入流public int read (){}public int read(char[] c){}public int read (char[]
2021-08-16 10:58:44
54
原创 Day 23 IO框架(1)
IO框架(1)什么是流概念:内存与存储设备之间传输数据的通道这根水管就是一个流,用来为水库中的水传输到脸盆的一个通道流的分类按方向【重点】:输入流:将<存储设备>中的内容读入到<内存>中。输出流:将<内存>中的内容写入到<存储设备>中。按单位:字节流:以字节为单位,可以读写所有数据。字符流:以字符为单位,只能读写文本数据。按功能:节点流:具有实际传输数据的读写功能。过滤流:在节点流的基础之上增强功能。字节流字节流的父
2021-08-13 15:33:44
51
原创 Day 22 集合框架(4)
集合框架(4)Map体系集合Map父接口特点:存储一对数据(Key-Value),无序、无下标,键不可重复,值可重复。方法:V put(K key,V value)//将对象存入到集合中,关联键值。key重复则覆盖原值。Object get(Object key)//根据键获取对应的值。Set//返回所有key。Collection values()//返回包含所有值的Collection集合。Set<Map.Entry<K, V>>//键值匹配的Set集合。
2021-08-11 18:02:34
77
原创 Day 21 集合框架(3)
集合框架(3)Set子接口特点:无序、无下标、元素不可重复。方法:全部继承自Collection中的方法。package United;import java.util.HashSet;import java.util.Iterator;import java.util.Set;//测试Set接口的使用public class Demo08 { public static void main(String[] args) { //创建集合 Set
2021-08-10 15:07:03
41
原创 Day 20 集合框架(2)
集合框架(2)Vector数组结构实现,查询快、增删慢;JDK1.0版本,运行效率慢、线程安全。package United;import java.util.Enumeration;import java.util.Vector;public class Demo06 { public static void main(String[] args) { //创建数组 Vector a = new Vector(); //1. 添加元
2021-08-09 16:13:43
39
原创 Day 17 集合框架(1)
集合框架(1)概念:对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能。和数组区别:数组长度固定,集合长度不固定数组可以存储基本类型和引用类型,集合只能存储引用类型Collection体系集合Collection父接口特点:代表一组任意类型的对象,无序、无下标、不能重复。方法:boolean add(0bject obj)//添加一个对象。boolean addAl1(Collection c)//将一个集合中的所有对象添加到此集合中。void clear()//
2021-08-06 16:16:56
47
原创 Day 16 常用类(3)
常用类(3)可变字符串StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全。StringBuilder:可变长字符串,JDK5.0提供,运行效率快、线程不安全。和String的区别:效率比String高比String节省内存两种字符串的方法都是相同的,这里以StringBuffer为例package Standard;public class Demo01 { public static void main(String[] args) {
2021-08-05 14:46:15
61
原创 Day 16 常用类(2)
常用类(2)String类常用方法public int length():返回字符串的长度。public char charAt(int index) :根据下标获取字符。public boolean contains(String str):判断当前字符串中是否包含str。public char[] toCharArray () :将字符串转换成数组。public int indexOf(String str):查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1。public
2021-08-05 08:57:01
48
原创 Day 15 常用类(1)
常用类(1)Object类超类、基类,所有类的直接或间接父类,位于继承树的最顶层。任何类,如没有书写extends显示继承某个类,都默认直接继承0bject类,否则为间接继承。Object类中所定义的方法,是所有对象都具备的方法。Object类型可以存储任何对象。作为参数,可接受任何对象。作为返回值,可返回任何对象。getClass()方法返回引用中存储的实际对象类型应用:通常用于判断两个引用中实际存储对象类型是否一致。hashCode()方法返回该对象的哈希码值,哈希值根据对象的
2021-08-04 12:35:40
75
原创 Day 14 异常机制
异常机制什么是异常实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了。等等。软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情况,或者叫异常,怎么让我们写的程序做出合理的处理。而不至于程序崩溃。异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网
2021-08-03 09:03:22
61
原创 Day 13 对象
面向对象面向过程的回顾和面向对象两者的比较面向过程思想步骤清晰简单,第一步做什么,第二步做什么…面对过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题!对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。什
2021-08-02 11:07:15
59
原创 Day 7 数组
数组定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据称作一个数组元素,每个数组元素可以通过下标来访问数组声明创建//首先必须声明数组变量,才能在程序中使用数组,如:int[] num =new int[]; // 后面的[]里输入规定的数组长度//数组的元素通过索引访问,数组索引从0开始//获取数组长度: num.length四个基本特点:其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同
2021-07-27 15:03:12
98
原创 Day 5 方法
方法总括Java方法是语句的集合,它们在一起执行一个功能方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样利于我们后期的扩展。定义方法包含一个方法头和方法体。修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。返回值类型:方法可能会返回值。returnValueTy
2021-07-24 20:42:14
63
原创 Day 4 流程控制
流程控制If选择结构package struct;import java.util.Scanner;public class IfDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入内容:"); String s = scanner.nextLine();
2021-07-22 16:16:26
53
原创 Day 3 Scanner
Scanner的一些示例next方法package scanner;import java.util.Scanner;public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next方法接收: ")
2021-07-21 20:04:46
37
原创 Day 3 变量、运算符
Day 3 变量、运算符变量package base;public class demo08 { //类变量 static static double salary =2500; //属性:变量 //实例变量 从属于对象;如果不自行初始化,这个类型的默认值 0 0.0 //布尔值:默认为false //除了基本类型,其余的默认值都是null; String name; int age; //main方法
2021-07-21 12:05:58
55
原创 数据拓展小结day2
数据拓展public class Hello { public static void main(String[] args) { //整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x int i =10; int i2 = 010; //八进制0 int i3 = 0x10; //十六进制0x 0~9 A~F 16 System.out
2021-07-20 13:04:24
35
原创 数据的一些整理 Java学习day2
数据类型public class Demo1 { psvm //八大基本数据类型 //整数 int num1 =10; //最常用 byte num2 = 20; short num3 = 30; long num4 = 40L;//Long类型要在数字后加L //小数:浮点数 float num5 = 50.1F; //Float类型要在
2021-07-20 11:19:09
39
原创 第一次写代码,HelloWorld编写
HelloWorld 1. 随便新建一个文件夹,存放代码 2. 新建一个Java文件 - 文件后缀名为.java - Hello.java3.编写代码public class HelloWorld{ public static void main (String[] args){ System.out.print("Hello,World!"); }}4.编译javac java文件,会生成一个class文件5.运行class文件,Java
2021-07-19 18:47:47
140
原创 常见Dos命令练习
常见Dos命令练习#盘符切换 某盘+:+回车#查看当前目录下的所有文件 dir+回车#切换目录 cd /d 某盘 切盘 cd.. 返回上一级 cd 下一级#清理屏幕 cls#退出终端 exit#查看电脑IP ipconfig#打开应用 calc 计算器 mspaint 画图 notepad 记事本#ping命令 ping www.baidu.com#文件操作 md 创建目录名 rd 撤销目录
2021-07-19 13:05:42
228
原创 Java学习Day1
标题二级标题字体hello worldhello worldhello worldhello world引用人生就是不断地战斗分割线图片超链接点击转到百度一下列表 a b c A B C 表格姓名 性别 生日 张三 男 1997.01.01 代码pronhub...
2021-07-19 11:15:41
105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人