Java
文章平均质量分 80
Java 开发学习
老板来碗小面加蛋~
计算机硕士在读
展开
-
Java 注解与反射 02 —— 反射
文章目录静态 vs 动态Java ReflectionClass 类Class常用方法获取Class类对象哪些类型可以获取Class对象?Java 内存分析类的初始化什么时候发生类的初始化类加载器获取类的运行时结构动态创建对象、执行方法练习:ORM 静态 vs 动态 动态语言:是一类在运行时可以改变其结构的语言,例如新的函数、对象,甚至引进代码。通俗点说,就是在运行的时候代码可以根据某些条件改变自己结构。 主要的动态语言:Object-C、C#、JavaScript、PHP、Python等。 静态语言:运原创 2021-01-25 11:34:41 · 416 阅读 · 0 评论 -
Java 注解与反射 01 —— 注解
文章目录什么是注解内置注解元注解自定义注解 什么是注解 Java 从 JDK 5.0 引入注解(Annotation)。 Annotation的作用: 不是程序本身,但可以对程序做出解释。(这一点和注释类似) 可以被其他程序(例如编译器)读取。 Annotation的格式:@注释名,也可以添加一些参数值,例如:@SuppressWanings(value=“unchecked”)。 Annotation可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信原创 2021-01-24 17:42:10 · 227 阅读 · 0 评论 -
Java 多线程开发 06 —— 管程法、信号灯法
文章目录生产者、消费者问题管程法信号灯法 生产者、消费者问题 应用场景: 假设仓库只能放一件产品,生产者放入一件产品到仓库,消费者从仓取出一件产品。 若仓库有一件产品,则生产者必须等待消费者取出一件。 若仓库没有产品,则消费者必须等待生产者放入一件产品。 这里就涉及到一个线程通信的问题。 对于生产者,在生产了一件产品后要通知消费者取走。 对于消费者,在取走了一件产品后要通知生产者生产。 在这个问题中,仅用synchronized是不够的,它不能实现不同线程之间的消息传递。 Java 提供了几个方法原创 2021-01-23 00:01:44 · 327 阅读 · 0 评论 -
Java 多线程开发 05 —— synchronized、Lock、死锁
文章目录Java 多线程 三大不安全案例同步方法和同步代码块Lock上锁死锁 Java 多线程 三大不安全案例 案例一:模拟抢票的情况,黄牛党A、B、C同时去持续抢票,直到票被抢完。这会出现A、B、C抢到同一张票,甚至出现负票。 package lessen07_Thread; public class UnsafeBuyTicket { public static void main(String[] args) { BuyTicket buyTicket = new B原创 2021-01-21 22:24:03 · 315 阅读 · 0 评论 -
Java 多线程开发 04 —— 线程状态控制、优先级、守护线程
Java 线程的状态及控制 线程分为以下五个状态: 五种状态具体解释: 方法 说明 void setPriority(int newPriority) 更改线程的优先级 static void sleep(long millis) 在指定的毫秒数内让当前线程休眠 void join() 等待该线程终止 static void yield() 暂停当前正在执行的线程,并执行其他线程 void interrupt() 中断线程(不推荐用这个方式中断) bo原创 2021-01-21 10:16:07 · 310 阅读 · 0 评论 -
Java 多线程开发 03 —— Lambda表达式
Java Lambda表达式 形如下面: new Thread(()->System.out.println("Lambda")); 为什么要使用Lambda表达式: 避免匿名内部类定义过多 可以使代码看起来更简洁 去掉了一堆没有意义的代码,只留下核心的逻辑 下面是Lambda的化简过程: package lessen05; /** * Lambda使用条件:必须是函数式接口,即接口只含一个抽象方法 */ //1. 通过类实现接口 class Like1 implements Ilike原创 2021-01-20 22:27:20 · 182 阅读 · 2 评论 -
Java 多线程开发 02 —— 静态代理模式
静态代理模式 举个简单的例子 你:真实的角色 婚庆公司:代理你,能帮你处理一些结婚的事,布置现场之类的。 结婚:你需要做的事,但婚婚庆公司也会参与 package lessen05; /** * 静态代理模式 * 真实对象和代理对象都要实现同一个接口,Marry * 代理对象要代理真实角色,即WeddingCompany中的target * * 意义:代理对象可以做真实对象无法做的一些事,让真实对象专注自己的事 */ public class StaticProxy { publi原创 2021-01-20 19:37:59 · 165 阅读 · 0 评论 -
Java 多线程开发 01 —— 线程创建
Java 多线程开发-01 1. 一些概念 程序、进程、线程三者的区别: 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。 进程是执行程序的一次执行过程,是一个动态的概念。是系统资源分配的单位。 一个进程可能包含若干线程,线程是CPU调度和执行的单位。 例如英雄联盟是一个程序,运行英雄联盟后我们可以通过Ctrl+Alt+.看到他的进程,在游戏里面的各种操作都是多线程执行的。 注意:很多多线程是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟原创 2021-01-20 17:45:50 · 233 阅读 · 0 评论 -
Java 网络编程 03 —— URL下载资源
Java 网络编程—URL URL即统一资源定位符,用于定位互联网上的某一个资源,我们可以通过URL类+文件流实现网络资源下载。 URL格式:协议://IP地址:端口/项目名/资源 例如:https://baijiahao.baidu.com/s?id=1689363829118209355&wfr=spider&for=pc原创 2021-01-20 10:43:00 · 237 阅读 · 0 评论 -
Java 网络编程 02 —— Socket UDP通信
Java UDP通信 UDP和TCP不同,UDP是面向无连接的,因此实际上UDP是不区分服务器和客户端的。UDP通信代码更加简洁,一方发送消息后不管另一方是否成功接受消息,因此也没有TCP可靠。 UDP 消息发送 发送消息方: 创建DatagramSocket,类似TCP通信的Socket。 创建数据包。 发送数据包。 关闭资源。 package lessen02; import java.net.DatagramPacket; import java.net.Datag原创 2021-01-19 21:31:44 · 217 阅读 · 0 评论 -
Java 网络编程 01 —— Socket TCP通信
Java Socket TCP通信 TCP实现聊天 服务器: 建立服务器的端口。利用ServerSocket类。 等待用户的连接 。利用serversocket的accept方法返回一个客户端的socket。 接受用户消息。利用返回的客户端的socket获取输入流。 package lessen01; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException原创 2021-01-19 15:54:12 · 238 阅读 · 0 评论 -
Java 编程基础 —— IO常用类
Java IO流 常用类 菜鸟教程 文件流 FileInputStream / FileOutputStream 字节流 FileReader/FileWriter 字符流 package io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWri原创 2021-01-19 15:58:30 · 219 阅读 · 0 评论