JavaSE
文章平均质量分 75
M~Dragon
行走在IT行业的小学生,持续学习,持续分享!
展开
-
20、泛型
泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。原创 2023-02-09 08:39:03 · 80 阅读 · 0 评论 -
19、反射
1) Reflection也就是反射, 是Java被视为动态(或准动态)语言的一个关键性质2)反射机制指的是程序在运行时能够获取任何类的内部所有信息1)只要给定类的全路径(类的全限定名),即可通过反射获取类的所有信息2)反射可以在程序运行时获取任意一个对象所属的类对象3)在运行时可以获取到类中所有属性对象,并对其操作(包括私有属性)4)在运行时可以获取到类中、父类中所有方法,并调用。原创 2023-02-08 10:48:17 · 67 阅读 · 0 评论 -
18、Socket编程
如果说socket是一个多孔插座,插座是提供各种电器供电的地方,不同的电器工作时需要的电压和电流也不样,但各种电器都有各自的一个插口,这个称之为“端口”。在插座这边的是“客户端”,电线那边提供电的发电厂是“服务器”。(2)第二次握手: Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将 标志位SYN和ACK都置为1,ack=J+1, 随机产生-一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_ RCVD状态。(由底层网络定义协议)原创 2023-02-08 10:42:11 · 155 阅读 · 0 评论 -
17、多线程
/单个线程的线程池。进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程可能包含多个(至少-一个)线程。3)处于就绪状态的线程,只是说明该线程已经做好了准备,随时等待CPU调度执行,并不是说执行了start()该线程就会执行。线程是进程中可独立执行的最小的执行单元,-个进程中有多个线程,同一进程中的线程共享进程的资源(内存,空间,变量,方法)start() 方法的作用是:启动一个分支线程,在JVM中开辟一个新的栈空间,这段代码任务完成之后,瞬间就结束了。原创 2023-02-08 10:40:35 · 92 阅读 · 0 评论 -
16、IO
数据在两个设备间的传输称为流,流是一组有顺序的, 有起点和终点的字节集合;l是input的缩写,表示输入流;0是output的缩写,表示输出流;Java.io.*父类子类子类字节流输入流输出流字符流输入流ReaderFileReader。原创 2023-02-08 10:39:58 · 69 阅读 · 0 评论 -
15、异常
1) ClassNotFoundException:应用程序试图加载类时,找不到相应的类,抛出该异常。因为用户错误或者其他外在操作错误,导致的代码无法继续执行,引起的异常。运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。2) lllegalAccessException:访问一个类被拒绝的时候,抛出该异常。//无论是否发生异常, finally中的代码块都将在最后执行。//throws将异常抛出给上一级处理,最终将抛给jvm处理。//在本方法中, 抛出一个异常。原创 2023-02-08 10:34:28 · 59 阅读 · 0 评论 -
14、枚举
3、枚举类的构造方法只能使用private修饰符,如果构造方法省略修饰符,则默认使用private;4、枚举类的所有对象(实例)必须在枚举中显式列出,否则这个枚举类将永远不能创建实例对象;final的作用是内存地址不变,枚举类中对象的变量值可以通过get/set方法修改。5、枚举列出的对象,系统会自动添加public static final修饰符;2、枚举类默认继承了java.lang.Enum类,而不是Object类;1、用enum关键字定义枚举类;//输出结果为:MON。原创 2023-02-08 10:33:02 · 59 阅读 · 0 评论 -
13、集合
为了可以满足用户数据更多种的逻辑关系,而设计的一系列的不同 于数组的可变的聚合的抽象数据类型。这些接口和类在java.uti包中,因为类型很丰富,因此我们通常称为集合框架集。集合主要分为两大系列: Collection和Map, Collection 表示一组对象,Map表示一组映射关系或键值对。原创 2023-02-08 10:32:54 · 71 阅读 · 0 评论 -
12、String类
运行时实例创建的全局字符串常量池中有一个表,总是为池中每个唯一的字符串对象维护一个引用,这就意味着它们一直引用着字符串常量池中的对象,所以,在常量池中的这些字符串不会被垃圾收集器回收。//默认第一个,之前空的也算一个,但最后一个,之后的空的不算。字符串的分配,和其他的对象分配一样,耗费高昂的时间与空间代价作为最基础的数据类型,大量频繁。字符串常量池,可以理解为一个String的数据集,它是在堆内存中开辟的一块特殊内存*/字符串常量池,可以理解为一个String的数据集,它是在堆内存中开辟的一块特殊内存*/原创 2023-02-08 10:31:56 · 72 阅读 · 0 评论 -
11、常用类
/转成int返回a.intvalue( )//转成long返回a.longvalue( )//四舍五入,返回一个最接近的float->int 或double->long类型的值。//时间戳―从1970-01-01 00:00:00到对应时间的毫秒数,long类型。//加,返回结果,并不会一直累加,需要创建一个对象来接收。//注意运算完原来参与运算的值不改,要接收运算的返回值得到结果。//获取随机数,结果为0到1之间的小数,包含0不包含110。d.getTime( )//获取d那个时间的时间戳。原创 2023-02-08 10:30:54 · 55 阅读 · 0 评论 -
10、final、static
静态方法不会在实例化创建对象时,为对象创建一个新的static方法,所有的对象公用一个static方法,即多个实例对象先后调用该静态方法,只保存最后一次的结果。3) 修饰方法,称为静态方法,静态方法只能调用其他静态资源,不能调用非静态变量,不能应用this和super,因为静态资源的加载先于实例化;static关键字,表述为“静态的,全局的”,被static修饰的资源(变量或方法),可以直接通过类名调用,而不需要实例化对象。(成员变量,成员方法)static修饰的成员变量 称之为静态变量或类变量。原创 2023-02-07 17:03:34 · 96 阅读 · 0 评论 -
9、抽象类和接口
5)接口可以实现多个,而父类只有一个(单亲继承),而且必须先继承(extends)父类再实现(implements)接口,重写接口所有方法;3)通过父类的引用无法调用子类特有的方法,即向上转型的子类对象只能调用继承自父类的方法,而不能调用子类独有的方法,方法数量缩小,安全。6)抽象类可以有父类,但是父类必须有一个无参的构造函数,否则,抽象类必须声明一个与父类相同的有参构造方法;2)通过父类的引用调用的方法,是子类重写或继承父类的方法,而不是父类原本的方法,更不是子类特有的方法;原创 2023-02-07 17:02:27 · 64 阅读 · 0 评论 -
8、面向对象
面向对象程序设计(object oriented programming简称OOP)对象是一个由信息(变量)及对信息进行处理(方法)的描述所组成的整体,是对现实世界的抽象其本质是对现实事物的特征和变化规律建立的模型现实世界里我们所面对的事物都是对象,如具体存在的电脑,桌子等而从具体对象中抽取出来的类型概念就是类。面向对象三大特征:封装:把自己的数据和方法只让可信的类或对象操作,对不可信的进行信息隐藏继承:让某个类型的对象获得另一个类型的对象的属性的方法。原创 2023-02-07 17:01:04 · 66 阅读 · 0 评论 -
7、数组
数组是用来存储固定数量的同类型元素的一种数据结构,它是引用类型;原创 2023-02-07 16:55:34 · 76 阅读 · 0 评论 -
6、java的装箱与拆箱
/会先触发自动拆箱过程,再触发自动装箱过程,也就是说a+b,会先各自调用intValue方法,得到了加法运算后的数值之后,便调用Integer.valueOf方法,再进行equals比较。在Java中,装箱指的是将基本类型转换为包装类的过程。上面的代码中i1和i2的数值为100,因此会直接从cache中取已经存在的对象,所以i1和i2指向的是同一个对象,而i3和i4则是分别指向不同的对象。方法默认比较的是两个对象的内存地址,也就是说,如果两个对象的内存地址相同,则它们的值也相同;int n = i;原创 2023-02-07 16:52:20 · 108 阅读 · 0 评论 -
4、运算符
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符主要是决定哪个值应该赋值给变量。表达式1&&表达式2如果表达式1为false,根据&&的规则,已经可以判断出整个表达式的结果,就不会继续判断表达式2;表达式1Ⅱ表达式2如果表达式1为true,根据ll的规则,已经可以判断出整个表达式的结果,就不会继续判断表达式2。a++︰变量a先参与程序的执行,然后变量a自加1。++a︰变量a自加1,再参与程序的执行。后面只能跟变量或者值,不能是逻辑式子。原创 2023-02-07 15:38:24 · 58 阅读 · 0 评论 -
3、数据类型
单精度和双精度精确的范围不一样,单精度,也即float,一般在计算机中存储占用4字节,也就是32位,有效位数为7位;数值的范围越大,表示该数据类型的精度越高,根据精度的由低到高排序为:byte -> short,char -> int -> long -> float ->double。包装器类型:Boolean,Character,Integer,Byte,Short,Long,Float,Double。栈中保存的是:s =对象的引用,即对象名和对象的内存地址堆中保存的是: new Student();原创 2023-02-07 15:37:26 · 150 阅读 · 0 评论 -
2、Java基础知识
1)JDK(Java Development Kit,java开发工具包)是整个JAVA的核心,包括了Java运行环境(JRE),基本组件(javac/java/jdb等)和Java基础的类库(即Java APl,如: rt.jar);true、false、null、byValue、cast、future、generic、inner、operator、outer、rest、var、goto(保留关键字)、const(保留关键字)4)源文件名必须和类名相同,后缀是.java,编译文件后缀是.class。原创 2023-02-07 15:30:06 · 87 阅读 · 0 评论 -
1、eclipse使用:
eclipse基本使用原创 2023-02-07 11:37:58 · 68 阅读 · 0 评论