java
210DDUp
这个作者很懒,什么都没留下…
展开
-
泛型的定义
泛型,即“参数化类型”。提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的形参,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。看着复杂,用个例子说明:public class GenericTest { public static void main(String[] args) { /* List原创 2021-11-22 19:45:00 · 271 阅读 · 0 评论 -
JAVA中Callable和Future
Callable和Future,一个产生结果,一个拿到结果。Callable接口类似于Runnable,但Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大些, 被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值。public class CallableAndFuture { public static void main(String[] args) { Callable&l原创 2021-11-21 17:16:43 · 392 阅读 · 0 评论 -
TCP如何建立连接(三次握手)
TCP是因特网中的传输层协议,使用三次握手协议建立连接。TCP三次握手的过程如下:客户端发送SYN (SEQ=x) 报文给服务器端,进入SYN_ SEND状态。服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_ RECV状态。客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。三次握手完成,原创 2021-11-17 19:35:19 · 2470 阅读 · 0 评论 -
Java中hashCode方法的作用
hashcode方法返回该对象的哈希码值,其值一般是该对象在内存上的地址。hashCode的常规协定是:在Java应用程序执行期间,在同一对象上多次调用hashCode方法时,必须一致地返回相同的整数,前提是对象的equals比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。如果根据equals(Object)方法,两个对象是相等的,那么每个对象调用hashCode方法都必须生成相同的整数结果。以下情况不是必需的:如果根据equa原创 2021-11-12 22:52:17 · 2188 阅读 · 0 评论 -
Java中内存的分配方式
Java中内存的分配方式有两种,一种是在堆中分配,一种是在栈中分配,所有new出来得到对象都是在堆中分配的,函数中参数的传递是在栈中分配的。通常情况下堆的内存可以很大,比如32位操作系统中的虚拟内存都可以被堆使用(当内存紧张的时候硬盘都可以做堆的存储空间),而栈的内存分配时有限的。...原创 2021-11-11 21:25:43 · 1723 阅读 · 0 评论 -
Java基础——继承
继承继承可以使子类具有父类的属性和方法,还可以在子类中重新,追加属性和方法子类对象继承了父类对象的所有内容,但不都可见(private)静态资源属于类,不属于被继承的范畴java中子类只能继承一个类,不能继承多个类 java中类支持多层继承继承格式:public class 子类名 extends 父类名 {}父类也被称为基类,超类;子类也被称为派生类继承中变量访问的优先级:子类局部定义的变量------->子类定义的变量------>父类定义的变量--&g原创 2021-11-03 14:19:13 · 92 阅读 · 0 评论 -
Java快速排序
逻辑:数组找一元素作为基准值,比这个值大的放右边,比这个值小的放左边,这个元素就能找到自己正确的位置,而且把数组分成了两块,左边都是比其小的数,右边都是比其大的数。左右都进行这样的操作,数组就会再次进行分块,每块都是由大小顺序的,当块不能分的时候,数组就拍好了程序概述:假设有数组a1.设置一个基准值,可以设置成数组的第一个元素a[0]2.设置两个变量(i,j)作为索引的下标(j从后往前索引,i从前往后索引),基准值已经保存了a[0]值,a[0]可以保存j索引到的比基准值小的数,a原创 2021-11-02 15:17:52 · 98 阅读 · 0 评论 -
Java基础——方法
方法:有特殊功能的代码集带参数的方法定义格式:public static void 方法名(数据类型1 变量名1,数据类型2 变量名2,…… ){方法体;}定义时,数据类型和变量名都不能缺少,缺少一个都会报错 多个参数用逗号分隔 public static 修饰符调用格式:方法名(参数);先定义在调用 参数的数量和类型必须与定义的一致 参数可以是变量值,也可以是常量值形参和实参形参:方法定义中的参数(相当于变量的定义格式)实参:方法调用中的参数(使原创 2021-11-01 19:12:31 · 91 阅读 · 0 评论 -
Java基础——类和对象
类java程序的基本单位组成:属性和行为1)属性:成员变量 (类中方法外的变量)2)行为:成员方法类和对象对象是由一组属性值和方法构成,是一个具体的实例类是由一群具有相同属性共性和方法的群体的抽象类是对象的抽象,对象是类的具体实例类的创建class是关键字,用于声明自定义的类型,类包含属性和方法public class 类名{属性类型 属性名;方法名(){//方法体}}对象的定义和使用:类名 对象名=new 类名();.原创 2021-11-01 19:01:56 · 66 阅读 · 0 评论 -
Java实例——用二分法在数组中找元素
import java.util.Arrays;import java.util.Scanner;public class Testdichotomy { public static void main(String[] args) { //生成一个元素是随机数的长度为10的整型数组 int[]a=new int[10]; for (int i = 0; i < a.length; i++) { a[i]=(int.原创 2021-10-27 16:48:51 · 153 阅读 · 0 评论 -
Java实例——冒泡排序法,选择排序法和插入排序法
1.冒泡排序法1.1 算法描述1)比较相邻的元素,后面数比前面的大,则需要交换两个数的值;2)重复第一步的工作,直到最大的值排在最后;3)重复1)2)的工作,剩下的数中最大的值排在已经排完的值前面一个;1.2 程序编写import java.util.Arrays;public class Bubblesort { public static void main(String[] args) { //生成长度为10的随机数的整形数组 in原创 2021-10-26 22:38:22 · 244 阅读 · 0 评论 -
Java基础——一维数组
1.什么是数组数组的概念:在内存中一组连续的空间,存储了一组相同类型的值数组的基本要素:标识符-数组名,数组元素-值,元素下标-0开始,元素类型-类型,数组地址-数组本身的值2.定义数组1)数据类型 [ ] 数组名=new 数据类型 [ 数组长度 ]2)数据类型 数组名 [ ] =new 数据类型 [ 数组长度 ]例:int [ ] a=new int[5] ; string b[ ]=new string[8];3.数组元素的表示和赋值1)数组名[下标值] = 数值原创 2021-10-25 18:41:29 · 147 阅读 · 0 评论 -
Java基础——循环结构
1.while结构变量定义;while(循环条件){循环体}1)变量定义要在大括号外面,大括号里的定义的变量只能适用于大括号里面2)while的循环条件是boolean值,是true或false,不是0或13)步骤为先判断循环条件决定是否执行循环体2.do-while结构变量定义;do{循环体}while(循环条件);1)变量定义在循环体外,循环条件是boolean值2)先执行循环体,在判断循环条件,do-while至少会执行一次循环体3)while(循环原创 2021-10-22 11:37:33 · 345 阅读 · 0 评论 -
Java基础——选择结构
1. if控制语句if(表达式){语句}表达式为真,则执行语句,表达式为假则不执行;2.if-else语句if(表达式){语句1}else{语句2}表达式为真,执行语句1,反之,执行语句2.3.if-else的嵌套4.switch语句switch(表达式){case 常量1:语句1;break;case 常量2:语句2;break;…………………………default:语句;break;}表达式可以是的int long char short by原创 2021-10-20 19:41:24 · 71 阅读 · 0 评论 -
Java基础——运算符
常用运算符1 赋值运算符“=”,主要是复合赋值运算符“+=”、“*=”、“%=”等例如:a%=b,即为a=a%b;2 算术运算符“+”,“-”,“%”,“++”,“--”等%是取余数,a%b即为a/b取余数;a++,++a的区别,int a=1;int b=a++;则a=2,b=1。int a=1;int b=++a;则a=2,b=2。3 关系运算符“==”,“>”等4 逻辑运算符,对布尔型操作数进行运算&,逻辑与,两个操作数都是true,才原创 2021-10-20 19:09:38 · 91 阅读 · 0 评论 -
Java基础——理解数据类型
数据类型1.基本数据类型:数值型,字符型,布尔型。2.数值型:整数类型(byte,short,long,int),浮点类型(double,float)。1) byte:8位有符号整数,取值-128~127。2) short:16位有符号整数,取值-2^16~2^16-1。3) long:64位有符号整数,取值-2^64~2^64-1,超过int范围的必须在整数后加“L”。4) int:32位有符号整数,取值-2^32~2^32-1,与char可以用ASCII码换算。5) doub原创 2021-10-20 19:06:04 · 97 阅读 · 0 评论 -
Java基础——标识符和关键字
标识符1.标识符是为常量、变量、方法、类、接口和包命名2.标识符的命名规则:(1)有由字母、数字、下划线(_)、美元符号($)、人民币符号(¥)组成(2)不能以数字开头(3)不能使用关键字关键字1.关键字是定义了固定含义的特殊标识符2.关键字及其分类1)goto和const是保留字(2个)2)用于定义数据类型的关键字(11个)class interface byte short int long float doublechar boolean void...原创 2021-10-19 17:37:44 · 101 阅读 · 0 评论