随笔分类 - Java基础 / java
摘要:01-彻底搞懂java的值传递 在java的参数传递中,只有一种情况,就是值传递 值传递指的是在方法中,会将原始变量拷贝一份出来,进行处理 基本数据类型 基本数据类型 值就保存在变量中, 拷贝一份进行修改不会影响原来的数据 package com.kuang.real; /** * java值传递
阅读全文
摘要:Callable接口实现 之前学过callable, 这次再学些不一样的东西 Callable vs. Runnable Callable 接口有返回值, Runnable 接口没有返回值 Callable 接口可以抛出异常, Runnable 接口不能抛出异常 一个重写call方法,一个重写run
阅读全文
摘要:CopyOnWriteArraySet HashSet是多线程不安全的,建议使用CopyOnWriteArraySet package com.example.juc; import java.util.Set; import java.util.UUID; import java.util.con
阅读全文
摘要:CopyOnWriteArrayList ArrayList是多线程不安全的,建议使用CopyOnWriteArrayList package com.example.juc; import java.util.List; import java.util.UUID; import java.uti
阅读全文
摘要:彻底理解8锁 重点:锁 锁的是对象或者class模板, 静态方法锁的是class模板 1.初始情况 同一个对象,两个方法加锁,先“打电话”还是发短信? package com.example.juc; import java.util.concurrent.TimeUnit; public clas
阅读全文
摘要:传统的生产者消费者问题,防止虚假唤醒 注意点:wait需要被放进while代码块中,防止虚假唤醒 存在虚假唤醒代码: package com.example.juc; public class TestPc { public static void main(String[] args) { A a
阅读全文
摘要:Lock vs synchronized Synchronzied 和 Lock 的主要区别如下: 存在层面:Syncronized 是Java 中的一个关键字,存在于 JVM 层面,Lock 是 Java 中的一个接口 锁的释放条件:1. 获取锁的线程执行完同步代码后,自动释放;2. 线程发生异常
阅读全文
摘要:lock锁 三个实现类 可重入锁(普通)ReentrantLock 读锁ReentrantReadWriteLock.ReadLock 写锁ReentrantReadWriteLock.WriteLock fair和unfair 公平锁:严格执行先来后到 非公平锁:可以插队(默认) 默认非公平锁:如
阅读全文
摘要:OOP思想实践-线程就是一个资源类,没有任何附属操作 不要把Ticket 写成一个Runnable接口的实现,最好用lambda表达式 package com.example.juc; public class SaleTicket { public static void main(String[
阅读全文
摘要:OOP七大原则 开闭原则:对扩展开放,对修改关闭 (如果增加模块,需要在原有设计上进行扩展,而不是直接修改) 里氏替换原则:继承必须确保超类所拥有的性质在子类中仍然成立(子类不应重写父类的属性和方法,而应该添加新的方法和属性) 依赖倒置原则:要面向接口编程,不要面向实现编程 (大佬写接口,开发将接口
阅读全文
摘要:基础简介 sleep() 方法让当前线程停止运行一段时间,到期自动继续执行。 wait() 方法让线程停止运行,在 notify() 或 notifyAll() 后继续执行。 相同 sleep() 和 wait() 调用都会暂停当前线程并让出 CPU 不同 定义位置不同:sleep() 是线程类(T
阅读全文
摘要:GUI编程 本来听完面试的时候不会用到,就想跳过,结果说到为什么学习,又把我留住了。 简介 GUI的核心技术:Swing/AWT, java 做GUI没有流行起来,这两个技术也没有流行起来 因为页面不美观 需要jre环境 80兆左右大小 为什么要学习:了解mvc的思想,了解监听 AWT Awt介绍
阅读全文
摘要:URL下载 java里面什么东西都是流,文件流、输入流、输出流 URL (Uniform Resource Locator) 统一资源定位符 定位网络资源 DNS 域名解析:将域名解析为ip 格式 协议://ip地址:port/项目名/文件 URL类 package com.example.netw
阅读全文
摘要:UDP实现聊天 虽然不完美。但基本实现通信 TalkSender.java package com.example.network; import lombok.SneakyThrows; import java.io.BufferedReader; import java.io.InputStre
阅读全文
摘要:UDP实现循环接收输入 发送端: package com.example.network; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java
阅读全文
摘要:UDP实现通信 1.创建连接 DatagramSocket 2.构建包 DatagramPacket 3.发送包 .send() 或接收包.receive() 发送方 package com.example.network; import java.net.DatagramPacket; impor
阅读全文
摘要:初识Tomcat C/S 和B/S 服务端 自定义 S Tomcat S 客户端 自定义 C 浏览器 B 实践 下载apache-tomcat-8.5.15包,版本可以不同 进入apache-tomcat-8.5.15->bin->startup.bat 在浏览器中输入 localhost:8080
阅读全文
摘要:TCP文件上传 服务器端: 确定接收地址--端口 监听连接 accept 获取输入流 将输入流写入文件输出流 通知客户端已完成接收 关闭资源 客户端: 建立连接 socket 读取文件流 将文件流写入socket输出流 结束输出流 shutdownOutput 等待客户端完成接收 关闭资源 服务器端
阅读全文
摘要:TCP实现聊天 客户端: 连接服务器 Socket 发送消息 服务器端: 建立服务器端口 ServerSocket 等待连接 accept 接收用户的消息 // TcpClientDemo01.java package com.example.network; import ja
阅读全文
摘要:通信协议 协议:约定,比如我们都说普通话 网络通信协议:速率,传输码率,代码结构,传输控制 层级 应用层:软件,qq 传输层:通信 网络层:数据封包 数据链路层:硬件传输 TCP/IP协议:是一组协议 重要的协议: TCP:(Transmission Control Protocol)传输控制协
阅读全文