java
文章平均质量分 60
南离火
不积跬步无以至千里,不积小流无以成江海。
展开
-
封装、继承、多态
1.封装封装本质上是一种信息隐藏手段,即将对象的属性和行为封装为一个整体,并使得用户只能看到该对象的外部接口,而对象的内部实现对用户则是不可见的。封装的目的在于隔离对象的编写者与使用者——使用者无法知晓对象的具体实现细节,而是通过编写者为对象提供的外部接口来访问该对象。例如,驾驶员只需要通过操作方向盘,加速踏板就能控制汽车的方向,而不必知道踩下加速踏板后发生的细节。面向对象中的类是封装良好的模块,封装所带来的最大好处是降低了软件系统的耦合程度,当外部接口涉及的行为的实现细节发生变化,只要接口不变,则原创 2021-05-29 10:50:19 · 213 阅读 · 0 评论 -
类与对象概述
面向对象对象是人们要研究的具体事物,从最简单的整数到极其复杂的飞机都可看做对象,它不仅能表示现实世界中有形的规则、计划或事件。从设计者的角度,对象是具有明确责任并能够对其它对象提供服务的实体。从开发者的角度,对象是由数据和作用于数据的操作构成的整体。从使用者的角度,对象是他们所熟悉的现实世界中的具体个体,如万老师,这辆汽车,那个窗口。类类是人脑对若干具有相同属性和行为的对象的抽象,如人们根据认知经验从现实世界中的这只麻雀,那只燕子等具体对象抽象出了鸟类的概念。类是对象的抽象,其实.原创 2021-05-29 10:15:30 · 139 阅读 · 0 评论 -
二维数组
声明和创建二维数组1.声明二维数组二维数组中的每个元素是一个一维数组,其声明格式为:类型[] [] 数组名;两对方括号决定了数组是二维的。2.创建二维数组创建二维数组的常规语法格式为:数组名 =new 类型[行数][列数];类型 [] [] 数组名 =new 类型 [行数][列数];二维数组经常用于表示数学上由若干行和若干列构成的矩阵也可以在声明数组的同时为各元素指定初值,其语法格式为;类型[][] 数组名 ={{第1行初值},{第2行初值}}内层花括号必不可少,花括号的对数即原创 2021-05-05 20:29:09 · 799 阅读 · 0 评论 -
数组
基本类型的变量只能存放单个值,而程序经常需要处理若干具有相同类型的数据,如100个学生的某门课成绩。尽管可以声明用100个变量来分别存放这100个学生的某门课的成绩,但显然这样的方式过于繁琐,此时采用数组将极大的方便编程。数组是由若干具有相同类型的元素构成的有序集,实际上它是一种用于存放固定个数的数据的容器。数组中的元素可以是基本类型,也可以是对象类型,但同一数组中的所有元素必须具有相同的类型——如int数组和字符串数组分别表示数组中所有元素是int类型和字符串类型。数组中元素的总个数称为数组的长度原创 2021-05-03 21:22:17 · 647 阅读 · 0 评论 -
break与continue语句的区别
break语句除了switch语句,break语句还可以出现在循环语句中。后者的作用是结束break语句所在的那一层循环,并继续执行该层循环之后的代码。continue语句与break语句不同,continue语句只能出现在循环语句中,其作用是结束本次循环,并继续执行下一次循环。执行continue语句时,将略过循环体中位于该continue之后的语句。带标号的break与continue语句带标号的break语句用以结束标号所标记的那层循环,其语法格式为:break 标号;带标号.原创 2021-04-17 21:32:03 · 374 阅读 · 0 评论 -
java循环结构
while语句当条件成立时,重复执行某个语句或语句块,否则结束while语句。while语句的语法格式为:while(条件)循环体说明:被重复执行的语句或语句块被称为循环体。条件决定着是否执行循环体,因此也称为循环条件,其对应的表达式的值必须是boolean类型。因先判断条件,在决定是否执行循环体,故while语句的循环体可能一次都不执行。进入循环前,通常要为相应的变量赋以合适的初值,这成为循环条件的初始化。通常不应在右圆括号后加分号,若加了,并不会出现语法错误,但此时循环体是一条空语原创 2021-04-17 17:23:30 · 156 阅读 · 0 评论 -
java分支结构
if语句当条件成立时,执行某个语句或语句块,否则跳过它们,什么都不执行。if语句的语法格式为:if(条件)语句或语句块说明:条件表达式的值必须是boolean型,不能是数值。关键字if与条件组成的行并不是语句,它们连同其后的语句或语句块一起才构成了一个完整的语句,即if语句。若要让if控制多条语句,这些语句必须被置于一对花括号中以构成语句块,否则if只控制其后的第一条语句,而后面的语句并不受if控制。不要在用于包裹条件的圆括号后加分号,若加了,并不会出现语法错误,但此时的代码逻辑完全变了原创 2021-04-17 12:43:18 · 98 阅读 · 0 评论 -
java语句块
表达式语句表达式后跟一个分号,赋值表达式,如“i=3;”自增或自减表达式,如“i++;”“–i;”方法调用,如“System.out.println(“Hi”);”创建对象,如 “new Integer(10);”声明性语句变量声明后跟一个分号,如 “char ch;” “int a =1;”流程控制语句用以控制程序执行流程的语句空语句有时需要将连续的多条语句当作一个整体——以一对花括号起来,这些语句连同化括号一起被称为语句块,有时也称为复合语句。语句块可以.原创 2021-04-11 22:10:20 · 635 阅读 · 0 评论 -
运算符与表达式
运算符是一些特定的符号,允许对常量、变量及式子施加某种操作。运算符相当于自然语言中的动词,那些被操作的常量,变量及式子被称为操作数,不同的运算符对参与运算的操作数和类型可能也有不同的要求。此外,与数学上一样,java中的运算符也具有优先级。若多个运算符出现在同一式子中,则优先级高的先运算,对于优先级相同的运算符,则视运算符的结合性。优先级运算符1()(显式先运算,方法调用) [] . ::(方法引用)2! + - ~ ++ – ()(强制转换)原创 2021-04-11 15:11:37 · 280 阅读 · 0 评论 -
基本类型的包装类
包装类可以将基本类型的常量或变量包装为对应包装类的对象,并通过包装类提供的方法,方便地获取相关信息或执行某些常用操作。基本类型包装类直接父类byteByteNumbershortShortNumberintIntegerNumberlongLongNumberfloatFloatNumberdoubleDoubleNumbercharCharacterObjectbooleanBooleanObject原创 2021-04-11 09:38:31 · 416 阅读 · 0 评论 -
java类型转换
自动转换自动转换又称为隐式转换或类型提升,由java编译器和运行时环境自动完成。自动转换一般发生于基本类型混合出现的情形。java对基本类型混合出现时自动转换规则为:byte,short,char>int>long>float>double开发者通常无须关心自动转换的细节,不同的基本类型相遇时,自动转换总是将“小”类型提升为“大类型”,这样做的目的很明显——保证值和精度不会丢失。例如,byte型与long型相遇时,前者将被符号扩展为64为的long型。对于byte,short原创 2021-04-10 22:24:58 · 87 阅读 · 0 评论 -
布尔型
布尔型常量布尔型专门用于表示真假,故只有2个常量——true和false,它们实际上市java中的关键字。布尔型变量布尔型变量以关键字boolean声明,取值只能是true或false,默认为false。原创 2021-04-10 22:05:55 · 797 阅读 · 0 评论 -
字符型常量
常规表示常规表示适用于常规字符,在单引号中直接书写即可,如‘A’、‘风’。转义表示对于特殊字符,若以常规表示的形式直接输入到代码中,会破坏程序的语法,因此要对这些字符进行转义,转义字符以反斜杠“\”开头。字符转义字符说明’\’英文单引号"\"英文双引号回车\r光标跳到本行开头换行\n光标跳到下一行开头退格\b光标左移一列跳格/制表\t光标跳到下一个制表列说明:命令行窗口总是在光标处输出字符,若输出的是拉..原创 2021-04-10 18:35:56 · 5469 阅读 · 0 评论 -
java浮点型数据
浮点型常量常规形式的浮点型常量的书写形式与数学表示基本一致,如123.4。与整型常量一样,java也采用后缀来表示浮点型常量的类型。后缀f或F后缀:float型,占4个字节。如-123f,3.14Fd或D后缀:double型,占8个字节。如-123d,3.14D无后缀:默认为double型。如-123.4,3.14指数形式众所周知,任一实数N可以用指数形式表示为:N=+MX10Ejava允许用指数形式书写浮点型常量,这特别适合于表示较大的实数具体格式为:[-+][0x|0]尾数原创 2021-03-28 22:37:53 · 451 阅读 · 0 评论 -
整型
整型用以存放整数,java中的整型具体分为4种——字节型,短整型,基本整型和长整型。整型常量java用前缀来标识整型常量的进制,用后缀来标识整型常量的类型。前缀0:八进制整数,如0123,分别表示十进制的830x或0X: 十六进制整数0b或0B:二进制整数无前缀:默认为十进制整数后缀l或L:long型,占8个字节无后缀:默认为int型,占4个字节整型变量不要将long型常量赋值给非long型变量,即使常量值在变量范围内字面常量不要超过其所属类型的表示范围因jav原创 2021-03-28 17:56:26 · 694 阅读 · 0 评论 -
变量与常量
变量变量是指在程序运行期间其值能被修改的量。java是静态类型的编程语言——所有的变量必须先声明,即指定类型后才能使用。变量一旦被指定为某种类型,在程序运行期间该变量将一直保持这一类型。变量的声明格式为:[修饰符] 类型名 变量名1[=初始值1][,变量名2[=初始值2]…];说明:方括号中的内容是可选的,除非特别说明。类型名与首个变量名之间至少要有一个空格。可以在声明变量的同时为其赋初值,也可以只声明而不赋初值。可以一次声明多个变量,各变量之间用英文逗号隔开。最后为英文分好结束。原创 2021-03-28 17:15:19 · 65 阅读 · 0 评论 -
java基本类型与运算符
对于java语言,数据类型的意义主要体现在以下几个方面:任何数据在任何时刻都有所属类型。不同的数据类型能够存放不同性质的数据,例如,整型能够用来表示年龄,而布尔值能够用来表示性别是否为男性。不同的数据类型在内存中被分配的字节数可能不相同,从而他们各自能表示的数值范围也不同。数据类型决定了能够对数据进行的操作。例如,可以对整型数据做移位操作,可以对字符型数据座大小写转换操作。java的数据类型可以分为两大类:基本类型:表示具有原子性的数据,如整数、小数、字符对象类型:复合的数据类型ja原创 2021-03-28 15:28:51 · 69 阅读 · 0 评论 -
程序错误与调试
语法错误语法错误是指源文件的某些代码不符合编程语言的语法规范,具体语法错误的程序是不能运行的——因为无法通过编译。编译源文件时,编译器会分析源文件的语法,若有错误则会给出错误所在的行号与描述信息。因此,语法错误的定位与修改较为简单,可见,编译器不仅提示了错误的个数,而且还给出了每个错误所在的行号。编译器提示的错误个数可能不准确。编译器提示的错误描述信息也不一定准确。一般来说,提示的错误所在行号总是准确或相对准确的。语法错误还包括一类不安全的、无效的、或在特定情况下可能引发逻辑错误“轻微错误原创 2021-03-28 11:47:51 · 1031 阅读 · 0 评论 -
JDK安装及环境配置
为什么要选JDK8尽管最新版本通常都向下兼容之前的版本,由于发布时间段,尚未经过足够的实际项目经验,可能存在较多的未知Bug。对于最新版本所引入的新特性,绝大多数项目根本不会用到,或者能通过其它方式达到相同的效果。最新版能够获取到的文档资料相对较少。也不建议选择较老的版本,较老的版本由于不支持某些语言或语法特性,从而导致无法实现某些特定的功能或降低开发效率。选择工业界使用最为广泛的版本对于今后开发实际项目,还应充分考量jdk版本的成熟和稳定性,以及当遇到各种技术问题时,是否能较为便捷地通过官原创 2021-03-24 22:38:28 · 79 阅读 · 0 评论 -
java平台及版本
JRE组成java虚拟机java源程序文件(扩展名为java)被编译为类文件(扩展名为class)后,后者包含的字节码无法直接被cup理解,需要由一个特殊的程序进行翻译和解释,该程序被称为java虚拟机,不同的软硬件平台只需安装对应的java虚拟机,同一个类文件便能不加修改地运行在这些平台上,从而保证了java程序的可移植性。APIAPI是编程语言提供的一组具有基本功能的组件库,开发者可以在程序中直接调用它们。对于java来说,API是一些类文件,因这些类文件的数量众多,故将它们打包成一个原创 2021-03-23 23:36:19 · 200 阅读 · 0 评论 -
java语言的特点
简单java语言与c语言很接近,使得大多数开发者能够快速学习和使用java语言。java舍弃了c++中很少使用的、晦涩且容易出错的特性。java从语法层面取消了指针,同时提供了自动内存回收机制,是开发者不必频繁编写代码显示地释放内存。完全面向对象在java世界中,万事万物皆对象。java提供了封装、继承和多态等基本的面向对象特性,并且只支持单继承。为了能表达多重继承的语义,同时避免引入如c++的多重继承所带来的复杂性,同时也能实现若干个接口。分布式java提供了丰富的用于编写网.原创 2021-03-21 23:17:43 · 103 阅读 · 0 评论 -
java语言的诞生及发展
java语言的诞生1990年12月,sun公司的工程师Patrick Norton获得了一个stealth的研究项目,该项目被改名后为Green之后,James Gosling(后被誉为java之父)也加入了Patrick的研究团队。随着项目的进行,sun公司预测未来科技将被广泛用于家用电器领域,于是团队开始改变Green项目的目标,研究用于下一代智能家电程序的新技术。团队最初考虑使用C语言,而包括sun公司当时的首席科学家bill joy在内的很多成员发现c语言及其Api在某些方面并不能满足项目..原创 2021-03-21 17:40:05 · 1127 阅读 · 0 评论 -
Swagger
Swagger简介号称世界上最流行的Api框架RestFul Api文档在线自动生成工具=>Api文档与Api定义同步更新直接运行,可以在线测试API接口支持多种语言(java,php)官网:https://swagger.io/1.在项目中使用Swagger需要springboxswagger2uispringboot集成Swagger1.新建一个springboot web项目2.导入相关依赖<!--导入swagger依赖--> <原创 2021-02-19 19:33:52 · 202 阅读 · 1 评论 -
Shiro
什么是ShiroApache Shiro 是java的一个安全(权限)框架Shiro可以非常容易的开发出足够好的应用,不仅可以用在javaSE环境,也可以用在javaEE环境。Shiro可以完成:认证、授权、加密、会话管理、与web集成、缓存。下载地址:http://shiro.apache.org/Authentication:身份认证/登录,验证用户是不是拥有相应的身份。Authorization:授权,权限验证, 验证某个已认证的用户是否拥有某个权限,判断用户是否能进行操作,如:验原创 2021-02-19 07:31:24 · 198 阅读 · 0 评论 -
ElasticSearch
为什么要学习ElasticSearch用SQL进行模糊查询:like %%,如果是大数据,就十分的慢。LuceneLucene是一套信息检索工具包,jar包,不包含搜索引擎系统,它包含索引结构,读写索引的工具、排序、搜索规则。Lucene和ElasticSearch的关系ElasticSearch是基于Lucene做了一些封装和增强什么是ElasticSearchElasticSearch,简称为es,es是一个开源的高扩展的分布式全文检索引擎,它可以实现存储、检索数据,扩展性很好,可以扩原创 2021-02-13 22:19:05 · 495 阅读 · 1 评论 -
Token
76原创 2021-02-08 21:07:40 · 1086 阅读 · 0 评论 -
Cookie、Session、Token有什么区别
Cookies什么是cookieHTTP Cookie(也叫Web Cookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上,通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态,Cookie使无状态的HTTP协议记录,向稳定的状态信息成为了可能。cookie的作用会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)个性化设置(如用户自定义设置、主题等)浏览器原创 2021-02-08 19:43:38 · 156 阅读 · 0 评论 -
冒泡排序
比较数组中,两个相邻的元素,如果第一个数比第二个数大,就交换它们的位置每一次比较,都会产生一个最大,或者最小的数字依次循环,直到结束public class ArrayBubbing { public static void main(String[] args) { int[] num={2,4,8,1,90,345,22}; //定义数组的数据 int[] s=sort(num); System.out.println(Arrays.toString(s)); }.原创 2020-10-24 11:04:46 · 67 阅读 · 0 评论