java
文章平均质量分 59
学习交流
木鱼非鸟
把“坚持”坚持成习惯
展开
-
java基础(5)——注解和反射(5)反射(反射操作泛型和注解)
文章目录反射操作泛型反射操作注解反射操作泛型java采用泛型擦除的机制来引入泛型,java中的泛型仅仅是给编译器javac使用的,确保数据的安全性和免去强制类型转换问题,但是,一旦编译完成,所有和泛型有关的类型全部擦除为了通过反射操作这些类型,Java新增了ParamterizedType,GenericArrayType,TypeVariable和WildcardType几种类型来代表不能被归一到Class类中的类型但是又和原类型齐名的类型ParamterizedType:表示一种参数化类型,比原创 2021-02-07 09:41:55 · 126 阅读 · 0 评论 -
java基础(5)——注解和反射(4)反射(创建运行时类的对象)
文章目录创建运行时类的对象创建运行时类的对象获取运行时类的完整结构public class TestGet { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, NoSuchMethodException { Class<?> c1 = Class.forName("com.www.ref.User"); System原创 2021-02-07 09:41:43 · 107 阅读 · 0 评论 -
java基础(5)——注解和反射(3)反射(Java内存分析类加载过程、类的加载与ClassLoader的理解、类加载器的作用)
文章目录各种类型的Class对象Java内存分析类加载过程类的加载与ClassLoader的理解类加载器的作用各种类型的Class对象public class TestKinds { public static void main(String[] args) { Class<Object> objectClass = Object.class;//类 Class<Comparable> comparableClass = Comparab原创 2021-02-06 19:20:56 · 131 阅读 · 0 评论 -
java基础(5)——注解和反射(2)反射(动态语言vs静态语言、反射、 Class类)
文章目录反射动态语言vs静态语言反射Class类反射动态语言vs静态语言动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构主要动态语言:js,PHP,python…静态语言与动态语言相对应,运行时结构不可变就是静态语言,如java、c、c++…java不是动态语言但可以称为“准动态语言”。即Java有一定的动态性,可以利用反射机制获得类是动态语言的特性。原创 2021-02-06 18:37:12 · 164 阅读 · 0 评论 -
java基础(5)——注解和反射(1)注解(内置注解、元注解、自定义注解)
文章目录注解和反射注解内置注解元注解自定义注解注解和反射注解Annotation是从jdk5.0开始引入的新技术Annotation的作用:不是程序本身,可以对程序做出解释可以被其他程序读取Annotation的格式:@注释名,还可以添加一些参数@SuppressWarnings(value=“unchecked”)Annotation在哪里使用?可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编原创 2021-02-06 14:51:59 · 189 阅读 · 0 评论 -
java基础(4)——网络编程(4) URL
URL同一资源定位符https://home.firefoxchina.cn/协议://ip地址:端口/项目名/资源基本方法public class Url { public static void main(String[] args) throws MalformedURLException { URL url = new URL("http://localhost:8080/helloworld?index.jsp?name=www&pwd=123");原创 2021-02-05 18:38:04 · 280 阅读 · 0 评论 -
java基础(4)——网络编程(3) UDP
文章目录UDP单方发送连续发送双方聊天UDP单方发送发送方Apublic class UdpA { public static void main(String[] args) throws Exception { //数据报通信 DatagramSocket socket = new DatagramSocket(); //建立包裹 String msg = "UDP发送我..."; InetAddress l原创 2021-02-05 18:37:44 · 101 阅读 · 0 评论 -
java基础(4)——网络编程(2)TCP
文章目录TCP建立连接客户端给服务器发送TCP建立连接客户端给服务器发送客户端//客户端public class TcpClient { public static void main(String[] args) { Socket socket = null; OutputStream os = null; try { InetAddress address = InetAddress.getByName("127.原创 2021-02-05 18:37:26 · 103 阅读 · 0 评论 -
java基础(4)——网络编程(1)IP、端口、 通信协议
文章目录IP端口通信协议IPip地址:InetAddress唯一定位一台网络计算机127.0.0.1 本机localhostip地址分类ipv4和ipv6ipv4 :长度为 32 位(4 个字节)ipv6 :长度为 128 位(16 个字节)公网-私网A类地址范围:1.0.0.0~127.255.255.255B类地址范围:128.0.0.1~191.255.255.255。C类地址范围:192.0.0.1~223.255.255.255。D类地址范围:22原创 2021-02-05 18:37:06 · 147 阅读 · 0 评论 -
java基础(3)——多线程(4)线程通信
文章目录线程通信生产者,消费者表演观看使用线程池线程通信wait():表示线程一直等待,直到其他线程通知,与sleep不同,会释放锁wait(long timeout):指定等等的毫秒数notify():唤醒一个处于等待状态的线程notifyAll():唤醒同一个对象上所有调用wait()的线程,优先级高的线程优先调度均是object类的方法,都只能在同步方法或同步代码块中使用,否则抛出异常生产者,消费者管程法(创建缓冲区)//生产者 消费者 产品 缓冲原创 2021-02-04 10:39:28 · 62 阅读 · 0 评论 -
java基础(3)——多线程(3)线程同步
文章目录线程同步(重点)同步方法、同步代码块死锁Lock线程同步(重点)多个线程操作同一个资源并发:同一个对象被多个线程同时操作处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改此对象,这式就需要线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的对象等待池形成队列。等待前面的线程使用完毕,下一个线程再使用同步的条件:队列+锁由于同一个进程的多个线程访问同一块存储空间,在带来方便的同时,也带来了访问的冲突问题,为了确保数据的正确访问,在访问时加入锁机制s原创 2021-02-04 09:55:06 · 292 阅读 · 0 评论 -
java基础(3)——多线程(2)线程状态
文章目录线程状态线程休眠 sleep线程礼让 yieldjoin线程优先级守护线程lambda表达式的链接线程状态线程状态:new尚未启动的线程处于此状态runnable在Java虚拟机中执行的线程处于此状态blocked被阻塞等待监视器锁定的线程处于此状态waiting正在等待另一个线程执行特定动作的线程处于此状态time_waiting正在等待另一个线程执行动作达到指定等待时间的线程处于此状态terminated已退出的线程处于此状态原创 2021-02-04 09:51:55 · 234 阅读 · 0 评论 -
java基础(3)——多线程(1)线程实现
文章目录多线程线程简介线程实现 (重点)继承Thread类 (重点)实现Runnable接口(重点)实现Callable接口(了解即可)多线程线程简介程序:指令和数据的有序集合,其本身没有任何含义,是一个静态概念进程:执行程序的一次执行过程,动态概念,是系统资源分配的基本单位线程:通常一个进程可以包含若干个线程,线程是cpu调度和执行的单位线程实现 (重点)继承Thread类 (重点)继承Thread类重写run()用start()调用public class Main exte原创 2021-02-04 09:51:39 · 59 阅读 · 0 评论 -
java其他(1)——通过java写xml文档
实现代码package XML.dom;import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DO原创 2020-08-22 10:20:37 · 116 阅读 · 0 评论 -
排序(3)——java实现选择、插入以及希尔排序
选择排序选择排序是不断的选择剩余元素中最小的。举例(划掉的是已经排好顺序的不用再看了,加粗的是这次选择下次要进行排序(操作)的元素)数组:48 56 10 94 28 64 37 16第一次: 10 48 56 94 28 64 37 16第二次: 10 16 48 56 94 28 64 37第三次: 10 16 28 48 56 94 64 37第四次: 10 16 28 37 48 56 94 64第五次: 10 16 28 37 48 56 94 64第六次: 10 1原创 2020-07-18 17:15:20 · 115 阅读 · 0 评论 -
排序(2)——java实现自顶向下的归并排序
自顶向下归并排序:public class MergeTOP { //①:递归调用sort将数组分为单个元素,再一层一层返回 private static void sort(int[] a, int lo, int hi) { if(hi <= lo) return ;//将数组分为单个元素时停止 int mid = lo + (hi - lo) / 2; sort(a, lo, mid);//左半边排序 sort(a, mid + 1, hi);//右半边排序 mer原创 2020-07-20 11:35:57 · 225 阅读 · 0 评论 -
java基础(2)——Lambda表达式(Java8新特性)
lambda表达式避免内部类定义过多其实质属于函数式编程的概念理解函数式接口是学习lambda表达式的关键所在函数式接口的定义任何接口只包含唯一一个抽象方法,他就是函数式接口对于函数式接口,可以通过lambda表达式来创建该接口的对象public interface Runnable{ public abstract void run(); }/*lambda表达式要基于函数式接口(即只有一个抽象方法的接口) */public class TestL原创 2021-02-02 09:18:20 · 61 阅读 · 0 评论 -
排序(1)——java实现快速排序
快速排序通过举例列写思路:(我们要确保切分元素以前比他小,切分元素以后比他大)数组:(d)7(lo) 9 3 1 5 0 10 8(hi)默认7为切分元素(d)定义两个指针p1,p2分别指向lo,hi+1分别用p1,p2从前从后扫描数组当p1扫描到比d大的停止,当p2 扫到比d小的停止交换p1和p2上的数,再分别依次比较最后将p2和d交换,则此时切分元素为p2(7)结果:5 0 3 1 7 9 10 8依次分别再找切分元素public class Quick { public s原创 2020-07-25 09:35:12 · 94 阅读 · 0 评论 -
java基础(1)——IO流知识总结
文章目录Io流File类IO流FileReaderFileWriter处理流缓冲流转换流标准的输入、输出流打印流数据流对象流随机存取文件流Io流File类相对路径:相较于某个路径下,指明的路径绝对路径:包含盘符在内的文件或文件目录的路径路径的分隔符和系统有关: windows和Dos系统默认使用“ \ "表示 Unix和URL使用” / “表示创建File的方法File(String, int)File(String, File)File(String)File(String,原创 2021-01-20 11:33:22 · 121 阅读 · 0 评论