![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
文章平均质量分 76
JavaSE
iuyou️
这个作者很懒,什么都没留下…
展开
-
Java 动态代理入门
动态代理入门原创 2022-08-20 10:11:41 · 232 阅读 · 1 评论 -
秒懂编码和加密
一、URLENCODE(1)为什么使用1、是因为当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的。2、因为 url 对字符有限制,比如把一个邮箱放入 url,就需要使用 urlencode 函数,因为 url 中不能包含 @ 字符。3、url转义其实也只是为了符合url的规范而已。因为在标准的url规范中中文和很多的字符是不允许出现在url中的。(2)转换规则urlencode:返回字符串,此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)转载 2021-10-18 10:55:13 · 1159 阅读 · 0 评论 -
Java NIO
一、操作系统概念1、内核态和用户态内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺。为什么要有用户态和内核态?由于需要限制不同的程序之间的访问能力,防止他们获取别的程序的内存数据,或者获取外围设备的数据。并发送到网络,CPU划分出两个权限等级用户态和内核态。什么时候会发生内核态和用户态的切换【用户态在需要申请外部资源的时候会切换至内核态】。比如执行系统调用原创 2021-09-22 10:38:12 · 256 阅读 · 0 评论 -
Java AVRO序列化入门
Apache Avro是一个数据序列化系统。序列化就是将对象转换成二进制流,相应的反序列化就是将二进制流再转换成对应的对象。因此,Avro就是用来在传输数据之前,将对象转换成二进制流,然后此二进制流达到目标地址后,Avro再将二进制流转换成对象。Avro提供:丰富的数据结构一个紧凑的,快速的,二进制的数据格式一个容器文件,来存储持久化数据远程过程调用(RPC)简单的动态语言集成。代码生成不需要读写数据文件,也不要使用或实现RPC协议。代码生成是作为一个可选的优化,只对静态类型的语言值得实原创 2021-09-15 21:15:45 · 2088 阅读 · 0 评论 -
JVM线程堆栈
jps命令jps(Java Virtual Machine Process Status Tool)是JDK1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程以及进程id。 jps 也是一样,它的作用是显示当前系统的java进程情况及进程id。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一原创 2021-08-31 19:56:14 · 293 阅读 · 0 评论 -
楠哥Java SE总结详细笔记
Java SE总结一、Java体系1、Java 基础1、跨平台2、面向对象编程语言3、分布式计算2、Java 的运行机制编程 Java 程序编译 Java 文件JVM 读取字节码文件运行程序3、Java的三大体系Java SE(J2SE)Java ME(J2ME)Java EE(J2EE)4、配置 Java 环境JRE、JDKJRE:Java Runtime Environment Java 运行环境JDK:Java Devlopment K翻译 2021-02-19 17:28:36 · 7170 阅读 · 35 评论 -
java中数组的复制方式
java中数组的复制方式1、五种方式for循环、clone方法、System.arraycopy方法、Arrays.copyOf方法、Arrays.copyOfRange方法。2、示例2.1、for循环//源数组int[] source = {10,30,20,40};//目标数组int[] target = new int[source.length];for (int i = 0;i < source.length;i++){ target[i] = sour原创 2020-07-14 19:04:24 · 6001 阅读 · 0 评论 -
Java位运算详解 ^ & | ~
Java位运算符所有数都需要转换为二进制。设两个数字:8:10003:0011异位^相同的为0,不同的则为1。8^310000011结果:1011 —》11与&两数都为1则为1,否者为0。8&310000011结果:0000 —》0或 |两个数只要有一个为1,则为1,否者为0。8|310000011结果:1011 —》11非~如果位为0,结果是1,如果位为1,结果为0.System.out.println(8^3); //结果11Sy原创 2020-05-31 10:13:27 · 340 阅读 · 0 评论 -
JavaSE基础汇总
Java SEJDK开发者工具包,配置环境变量,JDK = JRE + java的开发工具JRE运行环境 JVM + 核心类库基础语法注释行内注释 //多行注释 /**/SE文档注释 /***/ javadoc 生成帮助文档标识符关键字:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XyiaTo9C-1590655932941)(C:\Users\游建成\AppData\Roaming\Typora\typora原创 2020-05-28 16:52:26 · 169 阅读 · 0 评论 -
Java多线程—生产者与消费者设计
生产者:作用是生产产品生产逻辑:通过一个生产标记,判断是否需要生产产品如果需要生产:生产产品,并通知消费者如果不需要: 等待消费者:作用是消费产品消费逻辑:判断是否有足够的产品可以消费如果可以消费:获取产品,进行消费如果不可以:等待假设有这样一个场景:餐厅当中客人将自己所选的菜单交给服务员,服务员再把客人的需求交给厨房,此时就是一个生产者消费者的问题,客人进行消费,厨房进行生产...原创 2020-04-14 19:33:48 · 199 阅读 · 0 评论 -
Java多线程—解决死锁问题
什么是死锁:死锁:多个线程彼此持有对方所需要的锁对象,而不释放自己的锁。锁常见的几种:wait:等待,是Object类中的一个方法,当前的线程释放自己的锁标记,并且让出CPU资源,使得当前的线程进入等待队列。notify:通知,是Object类中的一个方法,唤醒等待队列中的一个线程,使这个线程进入锁池。notifyALl:通知,是Object类中的一个方法,唤醒等待队列中所有...原创 2020-04-14 18:10:59 · 299 阅读 · 0 评论 -
Java多线程基本操作
线程的命名public class MyThread { public static void main(String[] args) { Runnable runnable = ()->{ for (int i = 0; i < 3; i++) { System.out.println(Thread....原创 2020-04-14 11:05:34 · 130 阅读 · 0 评论 -
Java—两种方式创建多线程
线程的生命周期生命周期:在程序开发中,将一个对象从被实例化完成,到这个对象使用结束,并销毁,将这样的过程称作为对象的生命周期。线程的生命周期:一个线程被实例化完成,到这个线程销毁,中间的过程。线程的状态:新生态:new一个线程对象被实例化完成,但是还没有做任何的操作。就绪态:Ready一个线程已经被开启,已经开始抢占CPU时间段。运行态:Run一个线程抢到了CPU时间片,并开...原创 2020-04-14 09:49:46 · 112 阅读 · 0 评论 -
Java中json数据的常见转换
Map, JavaBean ,字符串 转化为JSON /*Map转化为json*/ static public void test1() { HashMap<String, String> hashMap = new HashMap<>(); hashMap.put("name", "youyuan"); JSONO...原创 2020-04-11 19:44:25 · 539 阅读 · 0 评论 -
基于TCP—Socket通讯
通讯过程客户端:public class MyClient { public static void main(String[] args) throws IOException { //客户端 连接Server发布的服务 Socket socket = new Socket("127.0.0.1", 8080); //客户端向服务端...原创 2020-04-10 11:35:12 · 167 阅读 · 0 评论 -
序列化与反序列化(对象流)
定义一个Person类 public class Person implements Serializable { /*如果可序列化类未显式声明 serialVersionUID, 则序列化运行时将基于该类的各个方面计算该的 默认 serialVersionUID 值 */ static final long serialVersionUID = 42L; pr...原创 2020-04-09 22:15:26 · 121 阅读 · 0 评论 -
IO流—文件拆分与合并
将一个文件拆分为若干个文件的过程如下先将一个文件的全部内容读取到缓存区当中,然后在分别写入多个文件当中。public static void main(String[] args) throws Exception { //原文件(待拆分的文件) File file = new File("G:\\video.zip"); //拆分后的目录 ...原创 2020-04-09 20:49:56 · 696 阅读 · 0 评论 -
Java反射机制
类的加载时机当程序要使用某个类时,如果该类还未被加载到内存中,系统会通过加载,连接,初始化三步来实现对这个类进行初始化。加载就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象。连接验证是否有正确的内部结构,并和其他类协调一致,准备负责为类的静态成员分配内存,并设置默认初始化值。初始化初始化成员变量等等。加载时机创建类的...原创 2020-04-08 23:10:40 · 117 阅读 · 0 评论