02 2022 档案
摘要:不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存储回内存,这个过程可能会出现多个线程交差从而导致值的不正确。
阅读全文
摘要:lnteger对象会占用更多的内存。Integer是一个对象,需要存储对象的元数据。但是 int是一个基本数据类型的数据,所以占用的空间更少。
阅读全文
摘要:安全性 Hashtable是线程安全,HashMap是非线程安全。 HashMap的性能会高于Hashtable,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下可以使用Hashtable. 是否可以使用null作为key Hashtable不允许null作为 key, 而HashM
阅读全文
摘要:Collection是一个接口,它是 Set、List等容器的父接口; Collections是个一个工具类,提供了一系列的静态方法来辅助容器操作,这些方法包括对容器的搜索、排序、线程安全化等等。
阅读全文
摘要:ArrayList查询速度比LinkedList要快. 相对于ArrayList , LinkedList插入和删除是更快的。 LinkedList需要更多的内存,
阅读全文
摘要:“==”操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用“==”操作符。 如果a和 b都是对象,则 a==b 是比较两个对象的引用。。 equals方法是用于比较两个独立对象的内容是否相同,就好比去比
阅读全文
摘要:简单的来讲 HashCode 就像是一个签名,当两个对象的 Hashcode一样的时候,两个对象就可能一样,但如果Hashcode不一样,那么肯定不是同一个对象。相当于先确定一个大的范围,再用equals去比较。 hashcode可以减少equals 比较的次数,提高运算效率。(equals方法效率
阅读全文
摘要:final是一个修饰符,可以修饰变量、方法和类。如果 final修饰变量,意味着该变量的值在初始化后不能被改变。 finally是一个关键字,与try和 catch一起用于异常的处理。finally块一定会被执行,无论在 try块中是否有发生异常。 finalize方法是在对象被回收之前调用的方法,
阅读全文
摘要:什么条件下扩容? HashMap中最主要的数据结构是数组,一般情况下HashMap的元素是方数组上的。如果数组已经有元素,那么就发生了Hash 冲突,那么就会使用链表或红黑树的结构进行存储。 当然HashMap 中数组的默认大小是16,如果不断的插入元素,那么Hash冲突就会很频繁,所以这个时候就需
阅读全文
摘要:HashMap的数据结构 JDK1.7及之前HashMap底层是数组和链表 JDK1.8及以后HashMap底层是数组和链表以及红黑树 JDK1.8什么时候链表会转化成红黑树? HashMap在元素比较少的时候,也只会有数组+链表的结构。当链表的长度大于8,HashMap可能会做树化(链表转变成红黑
阅读全文
摘要:sleep是线程中的方法,但是wait是Object 中的方法。 sleep方法不会释放锁,但是wait会释放锁。 sleep方法不依赖于同步器synchronized,但是wait需要依赖synchronized关键字。 sleep不需要被唤醒(休眠之后推出阻塞),但是wait需要(不指定时间需要
阅读全文
摘要:操作DOM 节点文本操作 $('#test-ul li[name = python]').text(); // 获得值 $('#test-ul li[name = python]').text('设置值'); // 设置值 $('#test-ul').html(); // 获得值 $('#test-
阅读全文
摘要:事件 鼠标事件,键盘事件,其他事件 事件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #divMove { width: 500px; height: 500p
阅读全文
摘要:选择器 // 原生js,选择器少,麻烦不好记 // 标签 document.getElementByTagNames(); // id document.getElementById(); // 类 document.getElementsByClassName(); // jQuery css 中
阅读全文
摘要:jQuery JavaScript jQuery库,里面存在大量的javascript函数 获取jQuery <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--cdn引入--
阅读全文
摘要:提交表单,MD5加密密码,表单优化 <!--表单绑定提交事件 onsubmit 绑定一个提交检测的函数,true,false 将这个结果返回给表单,使用onsubmit接收! onsubmit = "return aaa()" --> <form action="https://www.baidu.
阅读全文
摘要:操作表单(验证) 表单是什么form DOM树 文本框text 下拉框< select > 单选框radio 多选框checkbox 隐藏域hidden 密码框password ...... 表单的目的:提交信息 获得要提交的信息 <form action="post"> <p> <span>用户名
阅读全文
摘要:插入节点 我们获得了某个Dom节点,假设这个dom节点是空的,我们通过innerHTML就可以增加一个元素了,但是这个DOM节点已经存在元素了,我们就不能这么干了!会产生覆盖 追加 <p id="js">JavaScript</p> <div id="list"> <p id="se">JavaSE
阅读全文
摘要:删除节点 删除节点的步骤:先获取父节点,再通过父节点删除自己 <div id="father"> <h1>标题一</h1> <p id="p1">p1</p> <p class="p2">p2</p> </div> <script> var self = document.getElementByI
阅读全文
摘要:更新节点 <div id="id"> </div> <script> let id = document.getElementById('id'); </script> 操作文本 id.innerText='456' 修改文本的值 id.innerHTML='<strong>123</strong>
阅读全文
摘要:操作DOM对象(重点) 核心 浏览器网页就是一个Dom树形结构! 更新:更新Dom节点 遍历dom节点:得到Dom节点 删除:删除一个Dom节点 添加:添加一个新的节点 要操作一个Dom节点,就必须要先获得这个Dom节点。 获得dom节点 //对应css选择器 let h1 = document.g
阅读全文
摘要:浏览器介绍 JavaScript和浏览器关系? JavaScript 诞生就是为了能够让他在浏览器中运行! BOM:浏览器对象模型 IE 6~11 Chrome Safari FireFox 三方 QQ浏览器 360浏览器 window window代表浏览器窗口 window.alert(1) u
阅读全文
摘要:class继承 class关键字,是在ES6引入的 1、定义一个类,属性,方法 //定义一个学生的类 class Student{ constructor(name){ this.name = name; } hello(){ alert('hello') } } 2、继承 //ES6之后 //定义
阅读全文
摘要:面向对象编程 什么是面向对象 javascript、Java、c#。。。。面向对象; javascript有些区别! 类:模板 对象:具体的实例 在JavaScript这个需要大家换一下思维方式! 原型: var Student = { name: 'wsh', age: 3, run: funct
阅读全文
摘要:JSON json是什么 早期,所有数据传输习惯使用XML文件! JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网
阅读全文
摘要:内部对象 标准对象 typeof 123 'number' typeof '123' 'string' typeof true 'boolean' typeof NaN 'number' typeof [] 'object' typeof {} 'object' typeof Math.abs 'f
阅读全文
摘要:方法 定义方法 方法就是把函数放在对象的里面,对象只有两个东西:属性和方法 var wsh = { name: 'wsh', birth: 2000, //方法 age: function(){ //今年 - 出生的年 var now = new Date().getFullYear(); retu
阅读全文
摘要:变量的作用域 在javascript中, var定义变量实际是有作用域的。 假设在函数体中声明,则在函数体外不可以使用~(非要想实现的话,后面可以研究一下闭包) function wsh(){ var x = 1; x = x + 1; } x = x + 2; // Uncaught Refere
阅读全文
摘要:函数 定义函数 定义方式一 绝对值函数 function abs(x){ if(x >= 0){ return x; }else{ return -x; } } 一旦执行到return代表函数结束,返回结果! 如果没有执行return,函数执行完也会返回结果,结果就是undefined 定义方式二
阅读全文
摘要:遍历数组 // 通过for of / for in 下标 var arr = [3, 4, 5]; for(var x of arr){ console.log(x) } 遍历map var map = new Map([["tom", 100], ["jack", 90], ["haha", 80
阅读全文
摘要:Map: //ES6 Map //学生的成绩,学生的名字 //var names = ["tom", "jack", "haha"]; //var scores = [100, 90, 80]; var map = new Map([['tom', 100], ['jack', 90], ['hah
阅读全文
摘要:流程控制 if判断 var age = 3; if(age > 3){ // 第一个判断 alert("haha") }else if(age < 2){ // 第二个判断 alert("wuwa~") }else{ alert("kuwa~") } while循环,避免程序死循环 while(ag
阅读全文
摘要:若干个键值对 var 对象名 = { 属性名: 属性值, 属性名: 属性值, 属性名: 属性值 } //定义了一个person对象,它有四个属性! var person = { name: "wsh", age: 3, email: "2076746988@qq.com", score: 0 } j
阅读全文
摘要:Array可以包含任意的数据类型 var arr = [1, 2, 3, 4, 5, 6] // 通过下标取值和赋值 arr[0] arr[0] = 1 1、长度 arr.length 注意:假如给arr.length赋值,数组大小就会发生变化~,如果赋值过小,元素就会丢失 2、indexOf,通过
阅读全文
摘要:1、 正常字符串我们使用单引号,或者双引号包裹 2、 注意转义字符\ \' > ' \n > 换行 \t > 制表符 \u4e2d \u#### > unicode字符 \x41 > ASCII字符 3、多行字符串编写 //tab上面esc键下面 var msg = `hello world 你好y
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!-- 前提:IDEA需要设置支持ES6语法 'use strict'; 严格检查模式,预防JavaScript的随意性导致产生的
阅读全文
摘要:数值,文本,图形,音频,视频...... 变量 var 王者荣耀 = "倔强青铜"; number js不区分小数和整数,Number 123 // 整数123 123.1 //浮点数123.1 1.123e3 // 科学计数法 -99 // 负数 NaN // not a number Infin
阅读全文
摘要:基本语法入门 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--JavaScript严格区分大小写!--> <script> // 1, 定义变量 变量类型 变量名 = 变量
阅读全文
摘要:快速入门 引入JavaScript 内部标签 <script> //...... </script> 外部引入 aaa.js //... test.html <script src="aaa.js"></script> 测试代码 <!DOCTYPE html> <html lang="en"> <h
阅读全文
摘要:z-index 图层~ z-index:默认是0,最高无线~999 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="css
阅读全文
摘要:绝对定位 定位:基于xxx定位,上下左右。 没有父级元素定位的前提下,相对于浏览器定位 假设父级元素存在定位,我们通常会相对于父级元素进行偏移 在父级元素范围内移动 相对于父级或浏览器的位置,进行指定的偏移,绝对定位的话,它不在标准文档流中,原来的位置不会被保留 <!DOCTYPE html> <h
阅读全文
摘要:定位 相对定位 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!-- 相对定位 相对于自己原来的位置进行偏移 --> <style> div{ margin: 10px; pa
阅读全文
摘要:父级边框塌陷的问题 clear /* clear:right; 右侧不允许有浮动元素 clear:left; 左侧不允许有浮动元素 clear:both; 两侧不允许有浮动元素 clear:none; */ 解决方案: 增加父级元素的高度~ #father{ border: 1px #000 sol
阅读全文
摘要:浮动 标准文档流 块级元素:独占一行 h1~h6 p div 列表... 行内元素:不独占一行 span a img strong... 行内元素可以被包含在块级元素中,反之,则不可以。 display div{ width: 100px; height: 100px; border: 1px so
阅读全文
摘要:圆角边框 4个角 <style> div { width: 100px; height: 100px; border: 10px solid red; border-radius: 50px 20px 10px 5px; } </style>
阅读全文
摘要:内外边距 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--外边距的妙用:居中元素 margin: 0 auto; --> <style> #box{ width:300px
阅读全文
摘要:盒子模型 什么是盒子模型 margin:外边距 padding:内边距 border:边框 边框 边框的粗细 边框的样式 边框的颜色
阅读全文
摘要:背景 背景颜色 背景图片 div { width: 1000px; height: 700px; border: 1px solid red; background-image: url("images/wsh2.jpg"); /*默认是全部平铺的 repeat*/ } .div1{ backgro
阅读全文
摘要:列表 /*ul li*/ /* list-style: none:去掉圆点 circle:空心圆 decimal:数字 square:正方形 */ /* ul{ background: #a0a0a0; } */ ul li{ height: 30px; list-style: none; text
阅读全文
摘要:阴影 /*text-shadow:阴影颜色,水平偏移,垂直偏移,阴影半径*/ #price{ text-shadow: #3033ff 10px 10px 2px; } 超链接伪类 正常情况下,a , a:hover /*默认的状态*/ a{ text-decoration: none; color
阅读全文
摘要:颜色 color rgb rgba 文本对齐方式 text-align=center 首行缩进 text-indent:2em **行高 line-height:**单行文字上下居中!line-height = height 装饰 text-decoration 文本图片水平对齐:vertical-
阅读全文
摘要:美化网页元素 为什么要美化网页 有效的传递页面信息 美化网页,页面漂亮,才能吸引用户 凸显页面的主题 提高用户的体验 span标签:重点要突出的字,使用span标签套起来 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <
阅读全文
摘要:id + class结合~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .demo a{ float: left; display: block; height
阅读全文
摘要:伪类:条件 /*ul的第一个子元素*/ ul li:first-child{ background: green; } /*ul的最后一个子元素*/ ul li:last-child{ background: seagreen; } /*选中p1:定位到父元素,选择当前的第一个元素 选择当前p元素的
阅读全文
摘要:后代选择器:在某个元素的后面 祖爷爷 爷爷 爸爸 你 /*后代选择器*/ body p{ background: red; } 子选择器,一代,儿子 /*子选择器*/ body>p{ background: green; } 相邻兄弟选择器 同辈 /*相邻兄弟选择器:只有一个,相邻(向下)*/ .a
阅读全文
摘要:选择器 作用:选择页面上的某一个或者某一类元素 基本选择器 标签选择器:选择一类标签 标签{} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /*标签选择器,会选
阅读全文
摘要:CSS的三种导入方式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--内部样式--> <style> h1{ color:green; } </style> <link r
阅读全文
摘要:练习格式: 快速入门 style 基本入门 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--规范,<style> 可以编写css的代码,每一个声明最好使用分号结尾 语法:
阅读全文
摘要:什么是CSS Cascading Style Sheets 层叠样式表 CSS:表现(美化网页) 字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动...... 发展史 CSS1.0 CSS2.0 DIV(块)+ CSS,HTML 与CSS结构分离的思想,网页变得简单,SEO CSS2.1
阅读全文
摘要:什么是CSS 如何学习 CSS是什么 CSS怎么用(快速入门) CSS选择器(重点+难点) 美化网页(文字,阴影,超链接,列表,渐变......) 盒子模型 浮动 定位 网页动画(特效效果)
阅读全文
摘要:为什么要进行表单验证? 减轻服务器的压力 保证数据的安全性 常用方式 placeholder:提示信息 required:非空判断 pattern:正则表达式 <!-- https://www.jb51.net/tools/regexsc.htm --> <p>自定义邮箱: <input type=
阅读全文
摘要:隐藏域 hidden 只读 readonly 禁用 disabled <!--增强鼠标可用性--> <label for="mark">你点我试试</label> <input type="text" id="mark">
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录注册</title> </head> <body> <h1>注册</h1> <!--表单form action:表单提交的位置,可以是网站,也可以是一个请求
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录注册</title> </head> <body> <h1>注册</h1> <!--表单form action:表单提交的位置,可以是网站,也可以是一个请求
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录注册</title> </head> <body> <h1>注册</h1> <!--表单form action:表单提交的位置,可以是网站,也可以是一个请求
阅读全文
摘要:表单元素格式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录注册</title> </head> <body> <h1>注册</h1> <!--表单form action:表单提交的位置,可以是网站,也
阅读全文
摘要:表单语法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录注册</title> </head> <body> <h1>注册</h1> <!--表单form action:表单提交的位置,可以是网站,也可以
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--iframe 内联框架 src:地址 w-h:宽度高度 --> <iframe src=""
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>页面结构分析</title> </head> <body> <header> <h2>网页头部</h2> </header> <section> <h2>网页主
阅读全文
摘要:视频和音频 视频元素 video 音频元素 audio <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>媒体元素学习</title> </head> <body> <!--音频和视频 src:资源路径 con
阅读全文
摘要:表格 为什么使用表格 简单通用 结构稳定 基本结构 单元格 行 列 跨行 跨列 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表格学习</title> </head> <body> <!--表格table
阅读全文
摘要:列表 什么是列表 列表就是信息资源的一种展示形式。它可以使信息结构化和条理化,并以列表的样式显示出来,以便浏览者能更快捷地获得相应的信息 列表的分类 无序列表 有序列表 定义列表 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8
阅读全文
摘要:行内元素和块元素 块元素 无论内容多少,该元素独占一行 (p、h1-h6...) 行内元素 内容撑开宽度﹐左右都是行内元素的可以在排在一行 ( a . strong . em ...)
阅读全文
摘要:链接标签 文本超链接 图像超链接 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>链接标签学习</title> </head> <body> <!--使用name作为标记--> <a name="top">顶
阅读全文
摘要:常见的图像格式 JPG(常用) GIF PNG(常用) BMP:位图 ...... <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图像标签学习</title> </head> <body> <!--img学
阅读全文
摘要:标题标签 段落标签 换行标签 水平线标签 字体样式标签 注释和特殊符号 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>基本标签学习</title> </head> <body> <!--标题标签--> <h
阅读全文
摘要:HTML基本结构 网页基本信息 DOCTYPE声明 标签 标签 <!--DOCTYPE:告诉浏览器,我们要使用什么规范 --> <!DOCTYPE html> <html lang="en"> <!--head标签代表网页头部--> <head> <!--meta描述性标签,它用来描述我们网站的一些
阅读全文
摘要:什么是HTML HTML Hyper Text Markup Language (超文本标记语言) 超文本包括:文字、图片、音频、视频、动画等 HTML5的优势 世界知名浏览器厂商对HTML5的支持 微软 Google 苹果 Opera Mozilla 市场的需求 跨平台 W3C标准 w3C Wor
阅读全文
摘要:JMM 什么是JMM? JMM:(Java Memory Model的缩写) 它干嘛的?︰官方,其他人的博客,对应的视频! 作用:缓存一致性协议,用于定义数据读写的规则(遵守,找到这个规则)。 JVM定义了线程工作内存和主内存之间的抽象关系:线程之间的共享变量存储在主内存(Main Memory)中
阅读全文
摘要:总结 内存效率:复制算法>标记清除算法>标记压缩算法(时间复杂度) 内存整齐度:复制算法=标记压缩算法>标记清除算法 内存利用率:标记压缩算法=标记清除算法>复制算法 思考一个问题:难道没有最优算法吗? 答案:没有,没有最好的算法,只有最合适的算法 > GC∶分代收集算法 年轻代: 存活率低 复制算
阅读全文
摘要:标记清除算法 优点:不需要额外的空间! 缺点:两次扫描,严重浪费时间,会产生内存碎片。 标记压缩 再优化: 标记清除压缩 先标记清除几次 再压缩~
阅读全文
摘要:复制算法 好处:没有内存的碎片~ 坏处:浪费了内存空间~:多了一半空间永远是空to。假设对象100%存活(极端情况) 复制算法最佳使用场景:对象存活度较低的时候;新生区~
阅读全文
摘要:GC:垃圾回收 JVM在进行GC时,并不是对这三个区域统一回收。大部分时候,回收都是新生代- 新生代 幸存区(from , to) 老年区 GC两种类:轻GC(普通的GC),重GC(全局GC)
阅读全文
摘要:在一个项目中,突然出现了OOM故障,那么该如何排除~研究为什么出错~ 能够看到代码第几行出错:内存快照分析工具,MAT,Jprofiler Dubug,一行行分析代码! MAT,Jprofiler作用 分析Dump内存文件,快速定位内存泄露; 获得堆中的数据 获得大的对象~ ...... //-Xm
阅读全文
摘要:新生区 类:诞生和成长的地方,甚至死亡; 伊甸园,所有的对象都是在伊甸园区new出来的! 幸存者区(0,1) 老年区 真理:经过研究,99%的对象都是临时对象! 永久区 这个区域常驻内存的。用来存放JDK自身携带的Class对象。Interface元数据,存储的是Java运行时的一些环境或类信息这个
阅读全文
摘要:三种JVM Sun公司 HotSpot Java Hotspot(TM) 64-Bit server VM (build 25.181-b13,mixed mode) BEA JRockit IBM J9 VM 我们学习都是: Hotspot 堆 Heap,一个JVM只有一个堆内存,堆内存的大小是可
阅读全文
摘要:1.栈:数据结构 程序=数据结构+算法︰持续学习~ 程序=框架+业务逻辑:吃饭~ 栈:先进后出、后进先出:桶 队列:先进先出(FIFO : First Input First Output ) 喝多了吐就是栈,吃多了拉就是队列 为什么main()先执行,最后结束~ 栈:栈内存,主管程序的运行,生命周
阅读全文
摘要:package com.wang.jvm; public class Demo { public static void main(String[] args) { new Thread(()->{ },"my thread name").start(); } //native :凡是带了nativ
阅读全文
摘要:Java安全模型的核心就是Java沙箱(sandbox),什么是沙箱?沙箱是一个限制程序运行的环境。沙箱机制就是将Java代码限定在虚拟机JVM)特定的运行范围中,并且严格限制代码对本地系统资源访问,通过这样的措施来保证对代码的有效隔离,防止对本地系统造成破坏。沙箱**主要限制系统资源访问**,那系
阅读全文
摘要:类加载器 作用:加载Class文件~ 虚拟机自带的加载器 启动类(根)加载器 扩展类加载器 应用程序加载器 package com.wang.jvm; public class Car { public static void main(String[] args) { //类是模板,对象是具体的
阅读全文
摘要:   throws ClassNotFoundException { //获取系统类的加载器 ClassLoader syst
阅读全文
摘要:什么时候会发生类初始化? 类的主动引用(一定会发生类的初始化) 当虚拟机启动,先初始化main方法所在的类 new一个类的对象 调用类的静态成员(除了final常量)和静态方法 使用java.lang.reflect包的方法对类进行反射调用 当初始化一个类,如果其父类没有被初始化,则先会初始化它的父
阅读全文
摘要:Java内存分析 package com.wang.reflection; public class Test05 { public static void main(String[] args) { A a = new A(); System.out.println(A.m); } } class
阅读全文
摘要:哪些类型可以有Class对象? class:外部类,成员(成员内部类,静态内部类),局部内部类,匿名内部类。 interface:接口 []:数组 enum:枚举 annotation:注解@interface primitive type:基本数据类型 void package com.wang.
阅读全文
摘要:Class类 对象照镜子后可以得到的信息:某个类的属性、方法和构造器、某个类到底实现了哪些接口。对于每个类而言,JRE都为其保留一个不变的Class类型的对象。一个Class对象包含了特定某个结构(class/interface/enum/annotation/primitive type/void
阅读全文
摘要:Java反射机制研究及应用 Java反射机制提供的功能 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时获取泛型信息 在运行时调用任意一个对象的成员变量和方法 在运行时处理注解 生成动态代理 ...... package com.
阅读全文
摘要:静态VS 动态语言 动态语言 是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。 主要动态语言:Object-C、C#、JavaScript、PHP、Python等。 静态语言
阅读全文
摘要:使用@interface自定义注解时﹐自动继承了java.lang.annotation.Annotation接口 分析∶ @interface用来声明一个注解﹐格式:public @interface注解名{定义内容} 其中的每一个方法实际上是声明了一个配置参数. 方法的名称就是参数的名称. 返回
阅读全文
摘要:元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型作说明. 这些类型和它们所支持的类在java.lang.annotation包中可以找到.( @Target , @Retention ,@Documented
阅读全文
摘要:Annotation是从JDK5.0开始引入的新技术. Annotation的作用: 不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别) 可以被其他程序(比如:编译器等)读取. Annotation的格式: 注解是以"@注释名"在代码中存在的﹐还可以添加一些参数值﹐例如:
阅读全文
摘要:使用线程池 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用
阅读全文
摘要:package com.wang.multiThread.gaoji; //测试生产者消费者问题2:信号灯法:标志位解决 public class TestPC2 { public static void main(String[] args) { TV tv = new TV(); new Pla
阅读全文
摘要:package com.wang.multiThread.gaoji; //测试:生产者消费者模型-->利用缓冲区解决:管程法 //生产者,消费者,产品,缓冲区 public class TestPC { public static void main(String[] args) { SynCon
阅读全文
摘要:线程通信 应用场景∶生产者和消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费. 如果仓库中没有产品,则生产者将产品放入仓库﹐否则停止生产并等待,直到仓库中的产品被消费者取走为止. 如果仓库中放有产品﹐则消费者可以将产品取走消费﹐否则停止消费并等待,直
阅读全文
摘要:Lock(锁) 从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Loc
阅读全文
摘要:多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题。 package com.wang.multiThread.thread; //死锁:多个线程互
阅读全文
摘要:package com.wang.multiThread.syn; import java.util.concurrent.CopyOnWriteArrayList; //测试JUC安全类型的集合 public class TestJUC { public static void main(Stri
阅读全文
摘要:同步方法 由于我们可以通过private关键字来保证数据对象只能被方法访问,所以我们只需要针对方法提出一套机制,这套机制就是synchronized关键字,它包括两种用法:synchronized方法和synchronized 块. 同步方法: "public synchronized void m
阅读全文
摘要:package com.wang.multiThread.syn; //不安全的买票 //线程不安全,有负数 public class UnsafeBuyTicket { public static void main(String[] args) { BuyTicket station = new
阅读全文
摘要:线程同步 多个线程操作同一个资源 并发 并发:同一个对象被多个线程同时操作 线程同步 现实生活中,我们会遇到”同一个资源,多个人都想使用”的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队,一个个来. 处理多线程问题时,多个线程访问同一个对象﹐并且某些线程还想修改这个对象﹒这时候
阅读全文
摘要:守护(daemon)线程 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待.. package com.wang.multiThread.state; //测试守护线程 //上帝守护你 public class
阅读全文
摘要:线程优先级 Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。 线程的优先级用数字表示,范围从1~10. Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thread.NORM_P
阅读全文
摘要:线程状态观测 Thread.State 线程状态。线程可以处于以下状态之一: NEW 尚未启动的线程处于此状态。 RUNNABLE 在Java虚拟机中执行的线程处于此状态。 BLOCKED 被阻塞等待监视器锁定的线程处于此状态。 WAITING 正在等待另一个线程执行特定动作的线程处于此状态。 TI
阅读全文
摘要:Join Join合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞 可以想象成插队 package com.wang.multiThread.state; //测试join方法//想象为插队 public class TestJoin implements Runnable { @Over
阅读全文
摘要:线程礼让 礼让线程,让当前正在执行的线程暂停,但不阻塞 将线程从运行状态转为就绪状态 让cpu重新调度,礼让不一定成功!看CPU心情 package com.wang.multiThread.state; //测试礼让线程 //礼让不一定成功,看CPU心情 public class TestYiel
阅读全文
摘要:线程休眠 sleep (时间)指定当前线程阻塞的毫秒数; sleep存在异常InterruptedException; sleep时间达到后线程进入就绪状态; sleep可以模拟网络延时,倒计时等。 每一个对象都有一个锁,sleep不会释放锁; package com.wang.multiThrea
阅读全文
摘要:线程状态 五大状态 线程方法 停止线程 不推荐使用JDK提供的stop()、destroy()方法。【已废弃】 推荐线程自己停止下来 建议使用一个标志位进行终止变量当flag=false,则终止线程运行。 package com.wang.multiThread.state; import java
阅读全文
摘要:λ希腊字母表中排序第十一位的字母,英语名称为Lambda 避免匿名内部类定义过多 其实质属于函数式编程的概念 为什么要使用lambda表达式 避免匿名内部类定义过多 可以让你的代码看起来很简洁 去掉了一堆没有意义的代码,只留下核心的逻辑。 也许你会说,我看了Lambda表达式,不但不觉得简洁,反而觉
阅读全文
摘要:package com.wang.multiThread.demo02; //静态代理模式总结: //真实对象和代理对象都要实现同一个接口 //代理对象要代理真实角色 //好处: //代理对象可以做很多真实对象做不了的事情 //真实对象专注做自己的事情 public class StaticProx
阅读全文
摘要:实现Callable接口,需要返回值类型 重写call方法,需要抛出异常 创建目标对象 创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(1); 提交执行:Future result1 = ser.submit(t1); 获取结果:
阅读全文
摘要:首先来个赛道距离,然后要离终点越来越近 判断比赛是否结束 打印出胜利者 龟兔赛跑开始 故事中是乌龟赢的,兔子需要睡觉,所以我们来模拟兔子睡觉 终于,乌龟赢得比赛 package com.wang.multiThread; //模拟龟兔赛跑 public class Race implements R
阅读全文
摘要:package com.wang.multiThread; //多个线程同时操作同一个对象 //买火车票的例子 //发现问题:多个线程操作同一个资源的情况下,线程不安全,数据紊乱。 public class TestThread4 implements Runnable { //票数 private
阅读全文
摘要:实现Runnable 定义MyRunnable类实现Runnable接口 ==实现run()==方法,编写线程执行体 创建线程对象,调用==start()==方法启动线程 package com.wang.multiThread; //创建线程方式2︰实现runnable接口,重写run方法,执行线
阅读全文
摘要:package com.wang.multiThread; import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.net.URL; //练习Thread
阅读全文
摘要:线程创建 Thread、Runnable、Callable Thread 自定义线程类继承Thread类 重写==run()==方法,编写线程执行体 创建线程对象,调用==start()==方法启动线程 package com.wang.multiThread; //创建线程方式一:继承THread
阅读全文
摘要:线程简介 任务,进程,线程,多线程 普通方法调用和多线程 一个进程可以有多个线程,如视屏中同时听声影,看图像,看弹幕,等等。 Process与Thread 说起进程,就不得不说下程序。程序就是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。 而进程则是执行程序的一次性过程,它是一个
阅读全文
摘要:URL https://www.baidu.com/ 统一资源定位符:定位资源的,定位互联网上的某一个资源 DNS域名解析 www.baidu.com XXX.X..X..X 协议://ip地址:端口/项目名/资源 package com.wang.netStudy.lesson04; import
阅读全文
摘要:package com.wang.netStudy.chat; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.Datag
阅读全文
摘要:循环发送消息 package com.wang.netStudy.chat; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.*;
阅读全文
摘要:UDP 发短信:不用连接,需要知道对方的地址! 发送消息 package com.wang.netStudy.lesson03; import com.sun.xml.internal.ws.api.message.Packet; import java.io.IOException; import
阅读全文
摘要:Tomcat 服务端 自定义S Tomcat服务器S 客户端 自定义C 浏览器B
阅读全文
摘要:文件上传 客户端 package com.wang.netStudy.lesson02; import java.io.*; import java.net.InetAddress; import java.net.Socket; public class TcpClientDemo02 { pub
阅读全文
摘要:客户端 连接服务器Socket 发送消息 package com.wang.netStudy.lesson02; import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import
阅读全文
摘要:协议:约定,就好比我们现在说的是普通话。 **网络通信协议:**速率,传输码率,代码结构,传输控制...... **问题:**非常的复杂? 大事化小:分层! TCP/IP协议簇:实际上是一组协议 重要: TCP:用户传输协议 UDP:用户数据报协议 出名的协议: TCP: IP:网络互连协议 TCP
阅读全文
摘要:端口 端口表示计算机上的一个程序的进程; 不同的进程有不同的端口号!用来区分软件! 被规定0-65535 TCP,UDP:65535*2 tcp:80,udp:80吗,单个协议下,端口号不能冲突 端口分类: 公有端口 0-1023 HTTP:80 HTTPS:443 FTP:21 Telent:23
阅读全文
摘要:IP ip地址:InetAddress 唯一定位一台网络上计算机 127.0.0.1:本机localhost ip地址的分类 ipV4 / ipV6 IPV4 127.0.0.1,4个字节组成,0-255,42亿~;30亿都在北美,亚洲4亿。2011年就用尽; IPV6 128位,8个无符号整数!
阅读全文
摘要:网络通信的要素 如何实现网络的通信? 通信双方的地址: ip 端口号 192.168.16.124:5900 规则:网络通信的协议 TCP/IP参考模型: 小结: 网络编程中有两个主要的问题 如何准确的定位到网络上的一台或者多台主机 找到主机之后如何进行通信 网络编程中的要素 IP和端口号 IP 网
阅读全文
摘要:网络编程 概述 地球村:你在西安,你有一个美国的朋友! 信件: 计算机网络: 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统 网络编程的目的: 无线电台...传播交
阅读全文
摘要:
阅读全文
摘要:1.定义数据 2.画上去 3.监听事件 键盘 事件 startGame类:游戏的主启动类 package com.wang.snake; import javax.swing.*; //游戏的主启动类 public class StartGame { public static void main(
阅读全文