
Java
文章平均质量分 63
Whynotwu
源于生活,而高于生活。
展开
-
BIO、NIO、AIO、Netty 学习笔记
首先了解一下什么是IO?Java中I/O是以流为基础进行数据的输入输出的,所有数据被串行化写入输出流。串行化就是数据要按顺序进行输入输出,也就是java通过io流方式和外部设备进行交互。比如程序从服务器上下载图片,就是通过流的方式从网络上以流的方式到程序中,再到硬盘中。同步与异步,阻塞与非阻塞的区别同步,一个任务的完成之前不能做其他操作,必须等待(等于在打电话)。异步,一个任务的完成之前,可以进行其他操作(等于在聊QQ)。阻塞,是相对于CPU来说的, 挂起当前线程,不能做其他操作只...原创 2021-08-08 22:59:10 · 361 阅读 · 0 评论 -
SpringMVC执行过程
原创 2021-06-14 00:27:47 · 142 阅读 · 0 评论 -
HTTP、HTTPS、tcp
HTTP协议原创 2021-06-14 00:21:23 · 137 阅读 · 0 评论 -
类加载器学习
类加载器学习学习网址:https://blog.youkuaiyun.com/weixin_37766296/article/details/80545283?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7E原创 2021-06-14 00:19:19 · 1161 阅读 · 1 评论 -
引用类型 String 学习
String 3大特性不变性:是一个immutable模式的对象,不变模式的主要作用是当一个对象需要被多线程共享并频繁访问时,可以保证数据的一致性。 常量池优化: String 对象创建之后,会在字符串常量池中进行缓存,下次创建同样的对象时,会直接返回缓存的引用。 final: String 类不可被继承,提高了系统的安全性。String不是基本数据类型是引用类型String实例化直接赋值:String str1=”Hello” 存放在常量池中。通过构造方法:String str2原创 2021-06-14 00:12:45 · 195 阅读 · 0 评论 -
Java 反射机制
Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射...原创 2021-06-14 00:11:29 · 1119 阅读 · 1 评论 -
JMM多线程内存模型
多核并发缓存JMM多线程内存模型volatile 能保证数据的可见性volatile的作用可以强制线程从公共内存中读取变量的值,而不是从工作内存中读取8大原子操作:用于开发jvm时规范不同公司版本的统一操作缓存一致性协议(MESI)当多个cpu从主内存读取同一个数据到各自的高速缓存一旦开启了MESI,某个工作内存中修改完的值立马同步到主内存中!也就是马上进行store和write原子操作,将这个工作内存的值赋值给主内存! 打开cp原创 2021-06-14 00:09:00 · 175 阅读 · 0 评论 -
HashMap与Hashtable的区别
HashMap与Hashtable有什么区别??Hashtable线程安全,HashMap线程不安全,因为Hashtable源码中的所有方法都加了synchronized关键字,每个线程过来访问都需要进行排队,导致同步效率比较低,所以我们通常会使用ConcurrentHashMap,它不会把整个方法全部锁住,会采用分段锁的方式对数据进行锁定。继承的父类不一样。源码中Hashtable继承的是Dictionary,HashMap继承的是AbstractMapHas...原创 2021-06-14 00:05:59 · 114 阅读 · 0 评论 -
HashMap的问答总结
关于Hash的14问Q0:HashMap是如何定位下标的?A:先获取Key,然后对Key进行hash,获取一个hash值,然后用hash值对HashMap的容量进行取余(实际上不是真的取余,而是使用按位与操作,原因参考Q6),最后得到下标。Q1:HashMap由什么组成?A:数组+单链表,jdk1.8以后又加了红黑树,当链表节点个数超过8个(m默认值)以后,开始使用红黑树,使用红黑树一个综合取优的选择,相对于其他数据结构,红黑树的查询和插入效率都比较高。而当红黑树的节点个数小于6个(默.原创 2021-06-14 00:03:32 · 327 阅读 · 0 评论 -
HashMap源码学习笔记
jdk1.7的HashMap底层原理简单理解一遍jdk1.7的HashMap底层原理数组中的每一个位置都有一个entry对象的引用地址一个entry对应一个key对应一个index????这个index是通过hashcode为什么hashcode取余不可以当index?如果 346546464%8 ------0~7的数就会出现相同的index,都要存在这个数组的同一个位置这就是哈希冲突!!产生哈希冲突的解决办法?数组加链表的方式,每一个数组位...原创 2021-06-13 23:53:16 · 241 阅读 · 0 评论 -
Java字符串反向输出的三种简单方法
字符串的反向输出在Java程序中 String这个基础类有两个特别给力的方法(toCharArray()和charAt(int index)),他们都可以将字符串中的每个字符进行逐一处理。toCharArray()方法是将字符串的每个字符分开成独立的一个char类型,然后将他们放进一个数组中。char [] chars =str.toCharArray(); //str为需要进行...原创 2019-11-08 11:17:45 · 11910 阅读 · 2 评论 -
Java编写菱形(数字空心)
Java编写数字空心菱形实践效果:一、编写菱形的思想:1、输入一个整数值为n2、每行输出n个空格3、满足条件的位置输出数字二、菱形的上半部分:> int a=scan.nextInt();> for(int i=a;i>=1;i--){ > for(int j=1;j<2*a;j++){ > ...原创 2019-11-05 23:33:28 · 1497 阅读 · 0 评论 -
JDK是什么?JRE、JVM又是什么?JAVA为什么能跨平台?
JDK、JRE、JVM、JAVA跨平台我相信每个刚接触Java的小白都对JDK、JRE、JVM、JAVA跨平台都特别敏感,经常能听到这些专业名词,可又偏偏弄不懂这些到底是啥玩意,接下来就让我好好给你们分析分析,希望能给你们带来一些帮助,少走一些弯路! ^ _ ^一、首先我们先看看基本的官方介绍JDK是什么?JDK(Java Development Kit) 是 Java 语言的软件开发工具...原创 2019-10-30 22:41:44 · 1247 阅读 · 0 评论