04 2022 档案
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ 数据类型转换 JavaScript 变量可以转换为新变量或其他数据类型: 通过使用 JavaScript 函数 通过 JavaScript 自身自动转换 toString() 方法
阅读全文
摘要:Undefined 这个值表示变量值未定义。可以通过将变量的值设置为 null 来清空变量。 在 JavaScript 中 null 表示 "什么都没有"。 null是一个只有一个值的特殊类型。表示一个空对象引用。 用 typeof 检测 null 返回是object。 可以设置为 null 来清空
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ 13、JavaScript条件语句 在 JavaScript 中,我们可使用以下条件语句: if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码 if...else
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ 12、JavaScript运算符 运算符 = 用于给 JavaScript 变量赋值。 算术运算符 + 用于把值加起来。 y=5; z=2; x=y+z;//7 12.1 Java
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ JavaScript字符串 1、字符串创建和访问 JavaScript 字符串用于存储和处理文本,可以存储一系列字符,如 "John Doe"。 字符串可以是插入到引号中的任何字符
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ 10、JavaScript事件 10.1 JavaScript 事件 HTML 事件是发生在 HTML 元素上的事情。 当在 HTML 页面中使用 JavaScript 时, Ja
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ JavaScript作用域 作用域是可访问变量的集合。 在 JavaScript 中, 对象和函数同样也是变量。 在 JavaScript 中, 作用域为可访问变量,对象,函数的集
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ JavaScript函数 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 例如以下测试实例 <!DOCTYPE html> <html> <head> <meta c
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ JavaScript对象 JavaScript 对象是拥有属性和方法的数据。换句话说:对象是属性和方法的容器 例如:真实生活中,一辆汽车是一个对象。 对象有它的属性,如重量和颜色等
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ JavaScript数据类型 1.值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symb
阅读全文
摘要:JavaScript语句 1.JavaScript语句 JavaScript 语句是发给浏览器的命令,这些命令的作用是告诉浏览器要做的事情。 2.分号 ; 分号用于分隔 JavaScript 语句。通常我们在每条可执行的语句结尾添加分号。分号的另一用处是在一行中编写多条语句。也可能看到不带有分号的案
阅读全文
摘要:JavaScript语法 JavaScript 是一个程序语言,语法规则定义了语言结构;是一个脚本语言;是一个轻量级但功能强大的编程语言。 1、JavaScript字面量 在编程语言中,一般固定值称为字面量,如 3.14。 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。 练
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ JavaScript显示数据的方式 JavaScript 没有任何打印或者输出的函数,但可以通过以下方式来输出数据 使用 window.alert() 弹出警告框。 使用 docu
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ JavaScript用法 HTML 中的脚本必须位于**<script> </script>**标签之间。 脚本可被放置在 HTML 页面的** <body> 和 <head>**
阅读全文
摘要:2、JavaScript能做些什么? 2.1 直接写入 HTML 输出流 .html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js直接写入练习</title> </head> <body> <p>
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ 1. JavaScript简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设
阅读全文
摘要:动画(了解) 1、CSS3 @keyframes 规则 要创建 CSS3 动画,首先需要了解 @keyframes 规则。 @keyframes 规则是创建动画。 @keyframes 规则内指定一个 CSS 样式和动画将逐步从目前的样式更改为新的样式。 2、CSS3 动画 动画是使元素从一种样式逐
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:[菜鸟教程 - 学的不仅是技术,更是梦想! (runoob.com)]( 定位 Position position 属性指定了元素的定位类型。 position 属性的五个值: static relative fixed abs
阅读全文
摘要:声明 该文部分代码和内容节选自菜鸟教程,仅用作个人学习,特此声明 链接:https://www.runoob.com/ 父级边框塌陷问题 解决方案 1、重设父级元素高度 <style> div{ background-color: green; height: 30px; width: auto;
阅读全文
摘要:练习理解浮动和清除★ .css代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>练习理解浮动和清除浮动</title> <style> /*1.清除浮动左*/ #div1{ background:red;
阅读全文
摘要:5.4 清除浮动 clear 元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用 clear 属性。 clear 属性指定元素两侧不能出现浮动元素。 清除浮动可以理解为打破横向排列。 声明:以下内容节选自其他作者文章,链接 :CSS浮动(float,clear)通俗讲解 - z-one -
阅读全文
摘要:浮动Float 1、什么是浮动? CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。 Float(浮动),往往是用于图像,但它在布局时一样非常有用。 元素的水平方向浮动,意味着元素只能左右移动而不能上下移动。 一个浮动元素会尽量向左或向右移动,直到它的外边缘碰到包含框
阅读全文
摘要:Display和Visibility display属性设置一个元素应如何显示,visibility属性指定一个元素应可见还是隐藏。 隐藏一个元素可以通过把display属性设置为"none",或把visibility属性设置为"hidden"。但是请注意,这两种方法会产生不同的结果。 visibi
阅读全文
摘要:块级元素和内联元素 块级元素(block)特性: 总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示; 宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制; 内联元素(inline)特性: 和相邻的内联元素在同一行; 宽度(width)
阅读全文
摘要:圆角边框及盒子阴影 圆角边框练习 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>圆形边框</title> <style> /*1.圆形边框 : 圆角宽度 = div半径 + 边框宽度*/ #round{ w
阅读全文
摘要:盒子模型及边框使用 1、盒子模型 magin:外边距 padding:内边距 border:边框 2、边框 2.1 边框样式 2.2 边框宽度 2.3 边框颜色 2.4 单独设置边框各边 设置单一属性的顺序为**上右底左** 通过下边的例子深度理解单独设置边框各边 border-style属性可以有
阅读全文
摘要:背景图像应用及渐变 1、在div内放置图像 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>背景</title> <style> div{ width : 1000px; height : 700px; bo
阅读全文
摘要:列表样式练习 .css代码 #nav{ width : 300px; } .title{ font : bold 18px "楷体"; text-indent : 1em; line-height : 35px; background : yellow; } /*ul li*/ /* list-st
阅读全文
摘要:超链接伪类和文本阴影 1、超链接伪类 为超链接不同的状态设置不同的样式 仅a元素使用 :link 未访问的超链接,可设置颜色、字体大小 :visited 已访问的超链接,由于隐私的原因,visited这个伪类只能修改链接的颜色 所有元素都可以使用: :hover 鼠标移入时状态变化 :active
阅读全文
摘要:美化网页元素 1. 为什么要美化网页 1.有效地传递页面信息 2.美化网页吸引用户 3.凸显页面主题 4.提高用户体验 span标签:使用span标签括起重点要突出的文字 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <
阅读全文
摘要:属性选择器★★★★== 1、属性选择器格式 /*属性选择器的格式: 标签类型+[属性 select 属性值 (正则)]+{} 其中select可选项为正则表达式 = 绝对等于 *= 包含这个元素 ^= 以......开头 $= 以......结尾 */ 2、属性选择器代码练习 <!DOCTYPE h
阅读全文
摘要:结构伪类选择器(存疑,有一定思路,但不确定是否正确) 声明: 该部分开头参考自CSDN作者原创文章,仅供个人学习,特此声明 原文链接:https://blog.csdn.net/ixygj197875/article/details/79038041== 看表理解结构伪类选择器 选择器 功能描述 E
阅读全文
摘要:层次选择器 遵循就近原则!!!! 1.后代选择器:在某元素后代的**所有元素** eg:(爷爷)--父亲--儿子 2.子选择器 : 在某元素后代的**第一代元素** eg: (爷爷)--父亲 3.相邻兄弟选择器 : 某一个元素的相邻(必须是向下相邻)元素 eg: 伯父、(父亲)、叔叔 4.通用选择器
阅读全文
摘要:选择器★★★★ 作用:选择页面上的某一个或者某一类元素 2.1 三种基本选择器 1、标签选择器 标签选择器:会选择到页面上所有这个标签的元素,缺点亦为如此:无法做到只改变单个标签的样式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT
阅读全文
摘要:CSS的四种导入方式 1. 行内样式 <!--行内样式:在标签元素中编写style属性,写样式即可--> <h1 style="color:red;">字体样式测试</h1> 2. 内部样式 <head> <!--内部样式--> <style> <h1> color : green; </h1> <
阅读全文
摘要:CSS快速入门 1.style :样式,尽量写在head里边 2.选择器:写在style里边,选定选择器后在{ }内部写样式 CSS代码书写规范如下 <!--规范,<style> 可以编写css代码,每一个声明语句最好使用分号结尾 语法: <head> <style> 选择器{ 声明1; 声明2;
阅读全文
摘要:CSS简单介绍 如何学习 1.CSS是什么 2.CSS怎么用(快速入门) 3.CSS选择器(重点+难点) 4.美化网页(文字、阴影、超链接、列表、渐变......) 5.盒子模型 6.浮动 7.定位 8.网页动画(特效效果) 1.1 什么是CSS Cascading Style Sheet 层叠级联
阅读全文
摘要:一个学习技巧 首先在任意页面空白处右击选择检查,查看该网页的HTML和CSS源码 点击左上角的按键以后再点击网页想要查看部分即可跳转到该部分的源码,如下图所示 这样就可以通过更改源码来自己改变页面样式等。例如我要把百度一下的背景变为粉色,进入查看源码模式点击百度一下,跳转到这部分的源码以后直接更改背
阅读全文
摘要:CSS学前须知!!! 问题解决链接:(1条消息) idea新建项目里面没有CSS选项什么原因?-前端-CSDN问答 首先要注意的是,社区版IDEA的CSS是没有提示功能的,不会自动提示补足代码,完全需要个人手敲代码 另外,社区版IDEA是不能直接创建stylesheet文件的,可以新建一个文件,然后
阅读全文
摘要:表单学习总体代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表单</title> </head> <body> <!--1.表单form action : 表单提交的位置,可以是一个网站,也可以是一个请
阅读全文
摘要:表单初级验证 **placeholder:**用在输入框中,提示信息 <p>提示信息测试 : <input type="text" name="test" placeholder="请输入任意内容"/></p> **required:**非空判断,该输入框信息不能为空 <p>非空判断测试 : <in
阅读全文
摘要:表单的应用 代码测试 只读 readonly <p>密码 <input name="pass" type="password" value="123456" readonly> </p> 隐藏域 hidden <p>用户名称 <input name="username" type="text" va
阅读全文
摘要:下拉框 <!--下拉框,列表框 默认选中为selected --> <p>国家 : <select name="列表名称" > <option value="USA" >美国</option> <option value="China" selected>中国</option> <option va
阅读全文
摘要:滑块和搜索框 1. 滑块 input type="range" <!--验证功能框 4.滑块 range 例如用滑块调整音量,要设置step和min max --> <p>音量滑块 : <input type="range" name="voice" min="0" max="100" step="
阅读全文
摘要:验证功能框 1. 邮箱验证 input type="email" <!--功能框 1.邮件验证 input type="email" --> <p>邮箱验证 : <input type="email" name="email" /> </p> 邮件验证框内**填写内容必须符合邮箱号码格式**,否则无
阅读全文
摘要:以上都是基于文本框input的,下面来学习一个不是基于input文本框的表单内容:文本域 列表框文本域和文件域 <!--文本域 cols="50" rows="10" 文本域大小,可以拉动文本域进行调节 --> <p> 反馈 : <br> <textarea name="textarea" cols
阅读全文
摘要:多选框和按钮标签 <!--多选框标签 同样需要命名来分组 --> <p>爱好: <input type="checkbox" value="sleep" name="hobby"/>睡觉 <input type="checkbox" value="eat" name="hobby"/>吃饭 <inp
阅读全文
摘要:文本框和单选框 <!--单选框标签 type=radio value:单选框的值 name:表示组,有相同name的单选框为一个组,同一个组内的单选框只能选一个 --> <p>性别 : <input type="radio" value="boy" name="sex"/>男 <input type
阅读全文
摘要:1. 表单语法 2. 表单元素格式 3. 初步学习代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表单</title> </head> <body> <!--1.表单form action : 表单提交
阅读全文
摘要:iframe内联框架 iframe+tab(问题待解决) 首先,我们可以**在b站复制一个嵌入代码** 直接复制到body内 <body> <iframe src="//player.bilibili.com/player.html?aid=55631961&bvid=BV1x4411V75C&ci
阅读全文
摘要:页面结构 页面结构分析 小练习: <body> <header><h2>网页头部</h2></header> <section><h2>网页主体</h2></section> <footer><h2>网页脚部</h2></footer> </body>
阅读全文
摘要:媒体元素标签 1、视频 video+tab 音频 audio+tab <body> <!--1.视频标签 : video src : 素材路径 controls : 视频控制条(视频进度条) autoplay : 运行后视频自动播放 2.音频标签 : audio --> <video src="/c
阅读全文
摘要:表格标签 1、基础知识 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>表格标签</title> </head> <body> <!--表格标签table 行 : tr 列 : td --> <table b
阅读全文
摘要:列表标签 1、有序列表 ol+tab <body> <ol> <li>Java</li> <li>Python</li> <li>运维</li> <li>前端</li> <li>C/c++</li> </ol> </body> 2、无序列表 ul+tab <body> <ul> <li>Java</
阅读全文
摘要:超链接标签 a+tab 1、文字和图像超链接 <body> <!--a标签 href : 必填,表示要跳转到哪个页面 target : 表示页面在哪里打开,默认为self _blank : 在新标签中打开 _self : 在当前网页中打开 --> <h2>文字超链接</h2> <br/> <a hr
阅读全文
摘要:图像标签 1、代码练习 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图像标签学习</title> </head> <body> <!--img学习 src:图片地址 相对地址: ../ 上一级目录 / 下
阅读全文
摘要:1、标题标签 h+tab <body> <!--标题标签--> <h1>一级标签</h1> <h2>二级标签</h2> <h3>三级标签</h3> <h4>四级标签</h4> <h5>五级标签</h5> <h6>六级标签</h6> </body> 网页生成效果如下: 2、段落标签 p+tab <bo
阅读全文
摘要:1、网页基本信息 知识点(看代码注释) <!--DOCTYPE:浏览器规范,默认为html--> <!DOCTYPE html> <html lang="en"> <!--head标签代表网页头部--> <head><!--开放标签--> <!--meta描述性标签,用来描述网站信息--> <!--
阅读全文
摘要:初识HTML 1、什么是HTML? 2、HTML发展史 3、HTML5的优点 4、W3C标准 5、HTML基本结构 6、新建一个HTML File 以下代码为自动生成 <!DOCTYPE html> <html lang="en"> <head><!--开放标签--> <meta charset="
阅读全文
摘要:声明 本文部分内容参考自CSDN博主万里顾—程,仅用作个人学习,特此声明 1.原文链接:https://blog.csdn.net/wpc2018/article/details/115252873 2.Java 泛型 | 菜鸟教程 (runoob.com) 3.java占位符%d,%s等的使用 -
阅读全文
摘要:声明 版权声明:本文部分内容参考自CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明 原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584 补充知识:生产者消费者模式(wait()和notify())
阅读全文
摘要:声明 版权声明:本文部分内容参考自CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明 原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584 object类相关方法 1、方法 方法名 作用 void wa
阅读全文
摘要:声明 版权声明:本文部分内容参考自CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明 原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584 守护线程 1、java语言中线程分为两大类: 一类是:用户线程
阅读全文
摘要:死锁★★★★ 声明: 该部分内容参考自CSDN博主Hyacinth_Dy原创文章,仅用作个人学习使用,特此声明 本文链接:https://blog.csdn.net/jyy305/article/details/70077042 1、产生条件(必要) 互斥条件:资源是独占的且排他使用,进程互斥使用资
阅读全文
摘要:synchronized总结 synchronized有三种写法: 第一种:同步代码块 synchronized(线程共享对象){ //同步代码块; } 第二种:在实例方法上使用synchronized 共享对象一定是 this 并且同步代码块是整个方法体。 第三种:在静态方法上使用synchron
阅读全文
摘要:补充:线程安全问题解决 以后在开发中如何解决线程安全问题呢?第一选择是线程同步吗? 不是,synchronized会让程序的执行效率降低,用户体验不好。 系统的用户吞吐量降低。用户体验差。在不得已的情况下再选择线程同步机制。 第一种方案:尽量使用局部变量 代替 “实例变量和静态变量”。 第二种方案:
阅读全文
摘要:补充知识:如何选择类 如果使用局部变量的话: 建议使用:StringBuilder。 因为局部变量不存在线程安全问题。选择StringBuilder。 StringBuilder效率比较低。 反之: 使用StringBuffer。 ArrayList是非线程安全的。 Vector是线程安全的。 Ha
阅读全文
摘要:声明 版权声明:本文参考CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明 原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584 回顾知识:Java变量 Java中的变量分为静态变量(类变量)、实例变量
阅读全文
摘要:线程同步机制★★★★ 1、synchronized-线程同步 线程同步机制的语法是: synchronized(){ // 线程同步代码块。 } synchronized()小括号内容是至关重要的,它必须得是**要同步的多个线程所共享的数据** 举个例子: 假设目前程序内共有t1到t5五个线程,我只
阅读全文
摘要:声明 版权声明:本文参考CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明 原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584 补充知识:数据安全 1. 多线程并发环境下,数据的安全问题(重点) 以后
阅读全文
摘要:声明 版权声明:本文参考CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明 原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584 合并方法join 1、概述 方法名 作用 void join() 将一个
阅读全文
摘要:声明 版权声明:本文参考CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明 原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584 线程方法 1. 获取方法 1、方法概述 获取当前线程对象、获取线程对象名
阅读全文
摘要:声明 版权声明:本文参考CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明 原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584 第一种方式 编写一个类,直接 继承 java.lang.Thread,重
阅读全文
摘要:声明 版权声明:本文参考CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明 原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584 Java多线程 1、什么是进程?什么是线程? 进程是:一个应用程序(1个
阅读全文
摘要:4. 综合练习:在线聊天室 声明 该练习程序参考自他人文章,仅用于个人学习,特此声明 **文章链接:**https://blog.csdn.net/qq_46331050/article/details/118153102 需求:使用TCP的Socket实现一个聊天室 服务器端:一个线程专门发送消息
阅读全文
摘要:声明 **文章仅用作个人学习,部分内容为参考他人文章,参考文章原文链接:**https://blog.csdn.net/qq_46331050/article/details/117706050 5. 服务器可以接收多个客户端上传的文件,线程封装 客户端: 数据来自文本文件,接收服务器反馈 服务器:
阅读全文
摘要:想在文章开头使用链接直接跳转到指定标题,可以使用快捷键 Ctrl + K 创建内部链接,并在[]中填写链接内容,()中的格式为 #要跳转到的标题 。 效果如图: 然后按住Ctrl,点击链接,即跳转到想看的标题了。
阅读全文
摘要:原来是可以直接发java代码的 public class ServerDemo { public static void main(String[] args) throws IOException{ ServerSocket ss = new ServerSocket(10005); // 监听客
阅读全文
摘要:声明 **文章仅用作个人学习,部分内容为参考他人文章,参考文章原文链接:**https://blog.csdn.net/qq_46331050/article/details/117706050 4. 上传文件,并得到服务器的反馈 客户端:数据来自于文本文件,接收服务器反馈 服务器:接收到的数据写入
阅读全文
摘要:声明 **文章仅用作个人学习,部分内容为参考他人文章,参考文章原文链接:**https://blog.csdn.net/qq_46331050/article/details/117706050 3. 上传文件 客户端:数据来自于文本文件 服务器:接收到的数据写入文本文件 示例代码 知识点总结 客户
阅读全文
摘要:声明 **文章仅用作个人学习,部分内容为参考他人文章,参考文章原文链接:**https://blog.csdn.net/qq_46331050/article/details/117706050 2. 数据来自键盘输入,接收到的数据写入文本 客户端: 数据来自于键盘录入,直到输入的数据是886, 发
阅读全文
摘要:声明 **文章仅用作个人学习,原文链接:**https://blog.csdn.net/qq_46331050/article/details/117706050 1. 数据来自键盘输入,接收到的数据输出到控制台 客户端: 数据来自于键盘录入,直到输入的数据是886, 发送数据结束 服务器:接收到的
阅读全文
摘要:3.2 TCP发送数据 发送步骤 创建客户端的Socket对象(Socket) Socket(String host, int port) 获取输出流,写数据 OutputStream getOutputStream() 释放资源 代码 3.3 TCP接收数据 接收步骤 创建服务器端的Socket对
阅读全文
摘要:3.1 TCP通信原理 TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。 使用基于TCP协议的Socket网络编程实现,使用Socket对象来代表两端的通信端口 TCP协议
阅读全文
摘要:声明 **文章仅用作个人学习,原文链接:**https://blog.csdn.net/qq_46331050/article/details/117706050 练习二:一对一线上咨询 需求: 完成在线咨询功能 学生和咨询师在线一对一交流 加入多线程,可以双向交流 聊天终止条件为输入"bye" 知
阅读全文
摘要:声明 **文章仅用作个人学习,原文链接:**https://blog.csdn.net/qq_46331050/article/details/117706050 2.4 UDP程序练习 练习一:简单的信息发送 发送端:数据来自键盘录入,知道输入的数据是886,发送数据结束 接收端:因为接收端不知道
阅读全文
摘要:声明 **文章仅用作个人学习,原文链接:**https://blog.csdn.net/qq_46331050/article/details/117706050 2.UDP通信程序 2.1 UDP通信原理 UDP协议是一种不可靠的网络协议,它在通信的==两端各建立一个Socket对象==,但是这两
阅读全文
摘要:协议 协议:计算机网络中,连接和通信的规则被称为网络通信协议 1、UDP协议 用户数据报协议(User Datagram Protocol) UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就
阅读全文
摘要:URL网址 URL基本概念 URL: Uniform Resource Locator 统一资源定位符 表示统一资源定位符,指向万维网上的“资源”的指针。用于区分、定位资源 一个标准的URL必须包括:protocol(方案或协议)、host(主机)、port(端口)、path(路径)、paramet
阅读全文
摘要:端口 端口相关概念 端口:设备上应用程序的唯一标识 端口号: 用两个字节表示的整数,它的取值范围是0 - 65535。 公认端口:0 - 1023之间的端口号用于一些知名的网络服务和应用,比如80端口分配给www,21端口分配给FTP** 注册端口:1024 - 49151 分配给用户进程或应用程序
阅读全文
摘要:InetAddress 的使用 为了方便我们对IP地址的获取和操作,Java提供了一个类InetAddress供我们使用 InetAddress:此类表示Internet协议(IP)地址,用于封装计算机的IP地址和DNS(没有端口信息) 方法名 描述 static InetAddress. getB
阅读全文
摘要:网络编程 1.1 网络编程基本概念 1、网络、通信 网络 将不同区域的电脑连接到一起,组成局域网、城域网或广域网。把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源 计算机网络 是指将地理
阅读全文
摘要:列表框 **习惯养成 有一个疑问在今天得到了解决 为什么设置的窗体大小要比实际窗体大小要小呢?实际上是一样大的! 如图所示,按道理来讲列表框是应该在宽度上填满窗口,在高度上占据窗口一半空间的 但观察后发现很明显结果不是这样的。原来是因为**生成窗体的边框等内容(上图红框部分)也是会占据一部分窗体大小
阅读全文
摘要:JButton按钮 图片按钮 代码 结果 单选按钮 代码 结果 如图所示只能选择一个按钮 需要注意的是: 因为单选按钮不能被同时选择,所以要给单选按钮**分组** 如果不分组,多个单选按钮就可以同时选择了,如下图所示 多选按钮
阅读全文
摘要:JPanel面板 代码 结果 contentPane.setLayout(new GridLayout(2,1,10,10)); //两行一列,间距长宽为10 JScrollPane滚动条面板 代码 结果 注意:JScroll就是一个面板,只不过带了滚动条
阅读全文
摘要:弹窗 代码 结果 应当注意的是: 弹窗自带关闭功能,不要在添加关闭命令否则会报异常,如下图所示 如果确定要在窗体内部添加容器,设置的窗体颜色是显示不出来的(被容器覆盖),直接设置容器颜色就行了 当选择要把容器添加进窗体或者把组件添加进容器的时候,如果想要让容器或者组件居中对齐 最好不要只设置容器和组
阅读全文
摘要:窗口JFrame 代码 应当注意的是: JFrame同Frame不同,需要进行初始化,创建时亦有不同 jLabel文字实际上是存放在容器中的(虽然是用JFrame.add(jLabel)将其添加到窗口中) 所以即便设置了JFrame的颜色,也是不显示颜色的。如下图所示 设置容器颜色以后,如下图,颜色
阅读全文
摘要:键盘监听 代码 需要注意的是: 获得按键命令e.getKeyCode();返回值是一个int类型的具体数值,即键盘上的每个键位都有其对应的数值 这个数值一般来讲是不需要记忆的,会用它的静态属性 VK_XXX 即可 结果
阅读全文
摘要:窗口监听 如图,窗口刚打开输出windowOpened并将窗口命名为"窗口已开启" 窗口被激活时输出windowActivated并将窗口重命名为"窗口被激活了" 窗口关闭中输出windowClosing 为什么窗口关闭以后不输出windowClosed呢? 因为我们设置的是点击叉号**关闭程序,*
阅读全文
摘要:鼠标监听 鼠标监听 总体思路: 1.创建窗口类 2.创建鼠标监听类,继承鼠标适配器类(只要鼠标监听器类的部分功能:鼠标点击) 3.重写鼠标点击方法: 获得鼠标窗口源返回窗口f,将鼠标点击位置新建为一个点,将每次点击新建的点作为元素存储进一个集合用于调用 4.在MyFrame类中新建点集合points
阅读全文
摘要:   **将监听器类作为内部类
阅读全文
摘要:输入框 TextField 监听 程序 **细节总结 要养成只用main方法实现启动的好习惯 自写MyFrame类继承了Frame类,直接调用Frame的方法即可 在文本输入框内输入内容之后按下回车即可将输入内容获取到控制台显示 设置替换编码保证安全性(应用:登录密码) textField.setE
阅读全文
摘要:多个按钮实现一个监听 程序 注意点: **e.getActionCommand():**获取按钮的信息 当没有重新设置按钮信息时,获取的按钮信息为默认按钮信息即按钮名称 重新设置按钮信息以后,获取按钮信息为重设信息
阅读全文
摘要:简单动作事件监听 如上图,每点击一次按钮程序输出一行aaa,点击叉号以后程序停止运行
阅读全文
摘要:HomeWork1 需要注意! 创建完所有的面板和按钮以后 第一步一定要把frame布局设置为null绝对布局 否则往frame里添加面板时,最后一个往里添加的面板就会自动填充满frame剩余未填充的空间
阅读全文
摘要:布局管理器 1.流式布局 2.东南西北中 注意: 流式布局是可以嵌套的,比如可以在上图中的North按钮中用流式布局嵌套别的按钮 3.表格布局
阅读全文
摘要:补充:监听事件(System.exit(0);) 监听窗口关闭事件 如上述程序,要重写很多方法,不好! 用适配器模式只写其中的某一个,如下图,只重写closing关闭方法 重写方法为点击关闭按钮时结束程序 这时候就可以点击叉号直接关闭窗口了
阅读全文
摘要:2.面板Panel 把面板放进框架,解决关闭事件 注意点: 要提前设置布局为空(后边讲) 面板初始位置的设置是相对于框架而言的,不要把面板设置过大而超出框架范围 面板的(0,0)位置即为框架的最左上角 面板和框架基本属性设置好以后要把面板添加进框架 frame.add(panel); 最后记得设置框
阅读全文
摘要:1.自写窗口 写一个很简单的界面窗口 注意点 可以用下图方式快速调节背景颜色 .setResizable(boolean);默认为true,即窗口大小可调节改为false即可固定窗口大小 此时自写的窗口没有关闭功能,终止程序的运行即可关闭 2.练习展示多个窗口 注意点 窗口大小和初始位置可以通过 .
阅读全文
摘要:Properties 概述 Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。 一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。 Properti
阅读全文
摘要:递归遍历 遍历思路 写遍历方法 在main方法中调用自写遍历方法并指定需要遍历的文件夹的路径 遍历要遍历的文件夹并返回一个数组 打印此文件夹的绝对路径 判断数组是否为空 如果文件夹数组为空,停止遍历 如果文件夹数组不为空,遍历此文件夹中的文件或文件夹 判断此文件夹中的内容是文件还是文件夹 如果fil
阅读全文
摘要:FileFilter接口 使用案例 该判断语句意为: 如果文件名称以.jpg结尾,也就是说如果文件为jpg格式,那么就返回true,否则返回false 如图所示只遍历了文件夹中的jpg格式文件
阅读全文
摘要:文件夹操作 1.创建文件夹 如上图程序所示要创建三级文件夹 此时就不能使用只能创建单击文件夹的 dir.mkdir(); 要使用创建多级文件夹的 dir.mkdirs(); 2.删除文件夹 直接删除 使用jvm删除 休眠5s后最底层文件夹package3删除 需要注意的是: dir.delete()
阅读全文
摘要:File类的使用 1.分隔符 2.文件操作 1.创建文件 在上图路径中创建一个file.txt文件,如下图所示,创建成功 需要注意的是: 创建成功以后再次创建会返回false,即创建新文件失败,因为该路径位置已经有一个同名txt文件了 所以,在创建文件之前要判断一下这个文件是否已经存在 上图程序表示
阅读全文
摘要:转换流 InputStreamReader 读(字符流)字节流,所以是字节流通向字符流 InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。 程序 1.创建流对象
阅读全文
摘要:打印流 PrintWriter使用 向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。 程序
阅读全文
摘要:BufferedReader BufferedReader:属于字符缓冲流,读取 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 程序 读取方法一 **方法二:readLine .readLine();按行读取 BufferedWriter BufferedWriter:属
阅读全文
摘要:字符流复制文件 注意:字符流不能复制图片和二进制文件 所以最好使用字节流复制文件
阅读全文
摘要:FileReader FileReader:属于文件字符流,读取 用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。 FileReader 用于读取字符流
阅读全文
摘要:要序列化的类必须要实现Serializable接口 序列化类中对象属性也要实现Serializable接口 serialVersionUID:序列化版本号ID,用于保证序列化的类和反序列化的类是同一个类 如上图所示:添加序列化版本号ID以后发现反序列化报异常,因为之前进行序列化和反序列化时并没有添加
阅读全文
摘要:序列化 如上图,异常为该Student类不能序列化。要想把某个类序列化,该类必须实现 Serializable接口,如下图所示 如下图,实现接口后成功序列化 反序列化 注意:反序列化对象完成以后再次进行反序列化操作就会报异常,不能重复进行反序列化操作 如果我序列化了多个对象,就可以多次反序列化了。如
阅读全文
摘要:ObjectInputStream ObjectInputStream:对象输入流,把硬盘中的对象写入内存当中 ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。 ObjectOutputStream ObjectOutputSt
阅读全文
摘要:BufferedInputStream BufferedInputStream:输入缓冲流,用于增强字节输入流 BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark和reset方法的能力。在创建BufferedInputStream时,会创建一个内部缓冲区
阅读全文
摘要:案例:字节流复制文件 程序 1.创建流 2.复制文件 注意:最后一次读取字节很有可能不是设定大小,所以写入的时候不能还是写入提前设定好大小的字节数,而是最后一次读取了多少个字节就写入多少字节,很明显最后一次是要写入count个字节(读取了count个字节) 3.关闭 结果 成功复制
阅读全文
摘要:FileOutputStream的使用 程序 单个字节写入 如图,成功在指定地址新建了bbb.text文件并写入了abc 多个字节写入 注意:以上每次重新写入都会覆盖掉上次写入的内容,如何解决? append为true,取消覆盖
阅读全文
摘要:FileInputStream的使用 FileInputStream从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。 FileInputStream用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用FileReader 程序 1.创建FileInputStream 注意
阅读全文
摘要:字节流抽象类 InputStream 此抽象类是表示字节输入流的所有类的超类。 需要定义InputStream子类的应用程序必须总是提供返回下一个输入字节的方法。 OutputStream 此抽象类是表示输出字节流的所有类的超类。输出流接受输出字节并将这些字节发送到某个接收器。 需要定义Output
阅读全文
摘要:流 概念 流:内存与存储设备之间传输数据的通道 分类 1.按流向分类 2.按单位和功能分类
阅读全文
摘要:Collections工具类 概念 方法摘要 1.二分查找:要求数组有序 方法使用 1.排序 默认升序排序,可以自定排序规则(Comparator) 2.二分查找 Collections.binarySearch(数组, 元素); 3.copy复制 Collections.copy(赋值数组,源数组
阅读全文
摘要:TreeMap的使用 实现了SortedMap接口(Map子接口),可以对key自动排序 1.添加元素 比较规则:比较学号大小 1.在Teacher类里重写compareTo方法 2.定制比较(Comparator) 2.删除元素 3.遍历【!!】 4.判断
阅读全文
摘要:HashMap源码分析 刚创建好HashMap还没有添加元素的时候 table = null; size = 0; 添加完第一个元素之后容量大小变为16,目的是节省空间 核心总结 1.刚创建好HashMap还没有添加元素的时候table为null,size = 0;添加进第一个元素放到数组的i位置,
阅读全文
摘要:**HashMap【重点!】 HashMap使用 1.添加元素 2.删除元素 应当注意的是: 删除操作中value值必须也得和原元素相同,否则hashCode和equals方法认定这两个元素不同,就删不掉 而添加操作中只要添加元素的key与原key相同就认定这两个元素相同,value不同不影响添加,
阅读全文
摘要:Map接口使用 1.添加、删除元素 注意点:键不可重复,但是将不同的Value值添加到同一个Key上时,后来添加的Value会把之前添加的替换掉 2.遍历【!!!】 keySet方法 entrySet方法 两个方法的原理图析 如上图所示: 1.map.KeySet方法 通过map.KeySet方法得
阅读全文
摘要:TreeSet案例 要求 TreeSet案例:使用TreeSet集合实现对以下字符串**按照长度(从小到大)**进行排序 helloworld zhang lisi wangwu beijing xian nanjing 程序
阅读全文
摘要:Comparator接口 自定比较规则 Comparator:实现定制比较(比较器),自己定制比较规则 如下是自己用comparator重写的compare方法,自定比较规则为先比较年龄再比较姓名 添加元素 如上图所示,很明显添加元素的顺序符合自定规则:先比较年龄(从小到大排序),年龄大小相等的比较
阅读全文
摘要:TreeSet TreeSet使用 程序位置: Student类程序位置: 添加字符串元素 添加Person类元素 添加Person类型数据发现出现了数据类型转换异常 Person类不能转换为java.Comparable类型 因为对于红黑树而言,左边节点数据要比中间根节点数据小,右边节点数据要比中
阅读全文
摘要:***HashSet数据存储方式 下图为一个HashSet数组的结构和三个元素,演示存储的过程 首先存入字符串“abc”;通过hashCode方法发现数组里没有96354这个哈希值,将这个哈希值存入数组,然后将元素"abc"以链表的方式连接在对应的哈希值数组下 然后重复操作同样存入元素"重地"; 最
阅读全文
摘要:如何排重? 这里为什么数据“重复”了呢 这肯定不是数据重复啊。因为p4是新建对象,地址跟p1不同,二者是不同的! 如下图:很明显添加数据是不可重复的 如果想让名字和年龄相同的对象是同一个对象,怎么办呢? 1.在Person类里边重写hashCode方法 如下图,重写hashCode方法以后同名同年龄
阅读全文
摘要:***HashSet ***两个问题 1.为什么说存入的元素不能重复: 原理: 在Object类里面有一个 native hashCode();方法可以返回对象的哈希值,要存储元素的时候调用add();方法,add方法会调用hashCode方法和equals方法判断元素是否重复。 例子如下: 在这个
阅读全文
摘要:Set接口使用 1.添加数据 如上图所示,说明Set集合添加数据是无序的、不能重复的 2.删除数据 set.remove(0);是不对的,因为set集合数据是无下标的 3.遍历 需要注意的是:String next = it.next();这一步是完全没有必要的,因为Itrator已经是String
阅读全文
摘要:泛型集合 演示一个问题 如图所示,出现类型转换异常 我们可以通过泛型集合来避免这种异常 程序位置 程序 泛型集合避免了强制转换问题
阅读全文
摘要:泛型方法 注意:泛型方法不需要定义类型,调用的时候赋值是什么类型他就被定义为什么类型 如下图所示 程序位置
阅读全文
摘要:泛型 把类型明确的工作推迟到调用的时候才去完成的一种特殊类型 泛型类 可以创建变量,不能用于创建对象,因为T虽然是一种引用类型,但它是不确定的 泛型类的创建 泛型类的使用 注意: 1.泛型只能使用**引用类型 ** 2.不同泛型类型对象之间不能相互赋值 需要类型是String泛型,提供的是Integ
阅读全文
摘要:LinkedList 双向链表图解 每一个节点都是Node类型,节点内部的实际数据是item LinkedList使用 几乎同上,详细见下图位置Demo1程序演示 LinkedList源码分析 理解了 【千锋】最新版 Java集合框架详解 通俗易懂哔哩哔哩bilibili](https://www.
阅读全文
摘要:Vector使用 Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建Vector后进行添加或移除项的操作。 方法 大多方法使用不再过多赘述,这里演示一种Vector集合的遍历方法:枚举器遍历 vec
阅读全文
摘要:ArrayList源码分析 1.private static final int DEFAULT_CAPACITY = 10;//默认容量 = 10 2.transient Object[] elementData;//elementData:存放元素的数组 3.private int size;/
阅读全文
摘要:### ArrayList使用【重点】 创建集合 重写equals! 1.添加元素 2.删除元素 remove方法中调用了equals方法,要想实现删除掉新建的对象(除地址外和数组内某个元素相同),就要重写Student类中的equals方法 之前已经在如图自写Student类中重写过equals方
阅读全文
摘要:List接口使用(2) 创建数字数据 数字数据的其余操作如遍历和判断、获取位置等同字符串元素 补充方法subList 注意: 子集合包含集合开始角标位置元素,不包含结束角标位置元素,是左闭右开的!
阅读全文
摘要:List接口 特点和部分方法 List接口使用(1) 创建集合 1.添加元素 如图,可以在指定位置添加元素 2.删除元素 指定位置删除元素 3.遍历【!!!!!】 注意!由于List子接口继承Collection,自然支持增强for和迭代器。另外,由于List接口是有序有下标可重复的,自然也可以通过
阅读全文
摘要:Collection使用2 学生信息存储 学生类程序 创建Collection对象 1.添加学生数据 2.删除 注意点都在程序截图中 另外: collection.clear();方法只是删除掉了添加进集合的地址,并没有把实际对象删除掉,学生信息是依旧存在的,只不过不在集合里边了 3.遍历 3.1增
阅读全文
摘要:Collection体系集合 Collection父接口 特点: 代表一组任意类型的对象,无序、无下标、不能重复(有一些是有序、有下标、可以重复的) 方法: boolean add(Object obj); //添加一个对象 boolean addAll(Collection c); //将一个集合
阅读全文
摘要:集合 概念 对象的容器,实现对对象常用的操作,类似数组功能。 和数组的区别 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型 可以把基本类型通过装箱操作转换为引用类型,再存储到集合中 位置 java.util.*;
阅读全文
摘要:Date类 方法 Calendar类 方法 1.创建Calendar对象 2.获取时间信息 3.修改时间信息 Calendar.set(要修改的位置(年月日时分秒),要改成的数字); 4.增减时间量 void add(修改位置,修改大小(正为加负为减)); 5.补充方法 getActualMaxim
阅读全文
摘要:包装类 概念 基本数据类型所对应的引用数据类型 Object可统一所有数据,包装类的默认值是null 方法 1.类型转换与装箱、拆箱 #### 装箱和拆箱 概念 装箱:栈 >堆(基本类型 >引用类型)。反之为拆箱 程序 JDK1.5前 1.5后自动装箱拆箱 运行结果 反编译理解自动装箱拆箱 查看反编
阅读全文
摘要:包装类 概念 基本数据类型所对应的引用数据类型 Object可统一所有数据,包装类的默认值是null 类型转换与装箱、拆箱 装箱和拆箱 概念 装箱:栈 >堆(基本类型 >引用类型)。反之为拆箱 程序 JDK1.5前 1.5后自动装箱拆箱 运行结果 反编译理解自动装箱拆箱 查看反编译后的代码,发现装箱
阅读全文
摘要:Object类 方法 getClass()方法 判断两个对象是否属于同一类型 程序(存疑) 经过自己的尝试,发现直接判断s1.getClass == s2.getClass也是可以的,为什么还要分别赋值再比较? hashCode()方法 判断两个对象是否相同 程序 如上图,很明显s1和s3返回的哈希
阅读全文
摘要:内部类和常用类概述 内部类 分类 成员内部类 注意点 在类的内部定义,与实例变量、实例方法同级别的类 外部类的一个实例部分,创建内部类对象时必须依赖外部类对象 创建外部类对象和创建内部类对象实际上可以一步到位,如下图所示 外部类和内部类存在重名属性时优先访问内部类属性,如下图打印出来的是内部类的na
阅读全文