java
文章平均质量分 56
__BC__
这个作者很懒,什么都没留下…
展开
-
JDBC笔记
JDBCJDBC是什么?Java DataBase Connectivity(Java语言连接数据库)JDBC的本质是什么?JDBC是SUN公司制定的一套接口(interface)java.sql.*为什么要制定一套接口?因为每一个数据库的底层实现原理都不一样。oracle数据库有自己的原理mysql数据库也有自己的原理,ms SqlServer数据库也有自己的原理。。。每一个数据库产品都有自己独特的实现原理接口都有调用者和实现者面向接口调用、面向接口实现原创 2021-11-18 16:39:27 · 825 阅读 · 0 评论 -
java学习笔记_进阶018
注解注解,或者叫做注释,英文单词是:Annotation注解Annotation是一种引用数据类型,编译之后也是生成xxx.class文件怎么自定义注解呢?语法格式?[修饰符列表]@interface 注解类型名{}注解怎么使用,用在什么地方?第一:注解使用时的语法格式是@注解类型名第二:注解可以出现在类上、属性上、方法上、变量上、注解类型上等…JDK内置了哪些注解呢java.lang包下的注释类型Deprecated用@Deprecated注释的程序元原创 2021-11-17 16:29:47 · 64 阅读 · 0 评论 -
java学习笔记_进阶017
反射机制反射机制的作用通过java语言中的反射机制可以操作字节码文件优点类似于黑客(可以读和修改字节码文件)通过反射机制可以操作代码片段(class文件)反射机制的相关类在哪个包下java.lang.reflect.反射机制相关的类有哪些java.lang.Class:代表字节码文件,代表一个类型,代表整个类java.lang.reflect.Method:代表字节码中的方法字节码,代表类中的方法java.lang.reflect.Constructor:代表原创 2021-11-17 16:09:17 · 444 阅读 · 0 评论 -
java学习笔记_进阶016
多线程多线程什么是进程?什么是线程?进程:进程是一个应用程序(1个进程是一个软件)线程:线程是一个进程中的执行场景/执行单元一个进程可以启动多个线程对于java程序来说,当在dos命令窗口中输入:java HelloWorld 回车之后,会先启动JVM,而JVM就是一个进程。JVM再启动一个主线程调用main方法,同时再启动一个垃圾回收线程负责看护,回收垃圾。最起码,现在的java程序中至少有两个线程并发。一个是垃圾回收线程,一个是执行main方法的主线程进程原创 2021-11-17 15:05:06 · 197 阅读 · 0 评论 -
java学习笔记_进阶015
序列化和反序列化序列化和反序列化将内存中的java对象-数据信息传输到硬盘文件,,,这个过程叫做序列化Serialize( 拆分对象)。java对象存储到文件中,将java对象的状态保存下来的过程-----ObjectOutputStream将硬盘文件中的java对象-数据信息恢复到内存中,,,,,这个过程叫做反序列化DeSerialize(组装对象)。将硬盘上的数据重新恢复到内存当中,恢复成java对象----- ObjectInputStream序列化的实现反序列化的实现参与序列化和原创 2021-11-17 11:38:22 · 342 阅读 · 0 评论 -
java学习笔记_进阶014
IOIO流将硬盘上的文件放到内存中----输入流(InputStream)/输入(Input)/读(Read)将内存中的文件放到硬盘中----输出流(OutputStream)/输出(Output)/写(Write)IOI:inputO:output什么是IO?通过IO可以完成硬盘文件的读和写IO流的分类?有多种分类方式:一种方式是按照流的方向进行分类以内存作为参照物,往内存中去,叫做输入,或者叫做读;从内存中出来,叫做输出,或者叫做写。按照读取数据方原创 2021-11-17 11:08:39 · 180 阅读 · 0 评论 -
java学习笔记_进阶013
TreeSet集合底层实际上是一个TreeMapTreeMap集合底层是一个二叉树放到TreeSet集合中的元素,等同于放到TreeMap集合key部分了TreeSet集合中的元素:无序不可重复,但是可以按照元素的大小顺序自动排序,称为:可排序集合对自定义的类型来说,TreeSet 不可以排序因为默认没有指定对象之间的比较规则,谁大谁小没有说明如何实现比较呢?“”"示例如下:class Customer implements Comparable{在其中重写..原创 2021-11-17 10:11:35 · 67 阅读 · 0 评论 -
java学习笔记_进阶012
哈希表/散列表数据结构HashMap集合:HashMap集合底层是哈希表/散列表的数据结构哈希表是一个怎样的数据结构?哈希表是一个数组和单向链表的结合体数组:在查询方面效率很高,随机增删方面的效率很低单向链表:在随机增删方面效率较高,而在查询方面效率很低哈希表将以上的两种数据结构融合在一起,充分发挥它们各自的优点哈希值(哈希值是key的hashCode()方法的执行结果。hash值通过哈希函数/算法,可以转换存储成数组的下标同一个单向链表上所有节点的hash相同,因为他们的数组下原创 2021-11-17 10:11:06 · 70 阅读 · 0 评论 -
java学习笔记_进阶011
泛型使用泛型机制,分析程序存在缺点用泛型来指定集合中存储的数据类型,使用泛型之后,集合中元素的数据类型更加统一了。泛型这种语法机制,只会程序编译阶段起作用,只是给编译器参考的(运行阶段,泛型没用的)使用泛型好处是什么第一:集合中存储的元素类型统一了第二:从集合中取出的元素类型是泛型指定的类型,不需要进行大量的"向下转型“泛型的缺点是什么?导致集合中存储的元素缺乏多样性JDK之后引入了:自动类型推断机制(又称为钻石表达式),可以自定义泛型自定义泛型的时候,<>原创 2021-11-17 10:10:15 · 62 阅读 · 0 评论 -
java学习笔记_进阶010
Collection关于java.util.Collection中常用的方法Colleciton中能存放什么元素?没有使用泛型之前,collection中可以存储object的所有子类型使用了“泛型”之后,collection中只能存储某个具体的类型集合中不能直接存储基本数据类型,也不能存java对象,只是存储java对象的内存地址Collection中的常用方法void clear() 清空集合int size() 获取集合中元素的个数boolean add(Obj原创 2021-11-16 20:08:16 · 246 阅读 · 0 评论 -
java学习笔记_进阶009
类在强制类型转换过程中,如果是类转换成接口类型,那么类和接口之间不需要存在继承关系,也可以转换 ,java中语法允许集合什么是集合数组其实就是一个集合。集合实际上就是一个容器,可以来容纳其他类型的数据集合为什么说在开发中使用较多?集合是一个容器,是一个载体,可以一次容纳多个对象,在实际开发中,假设连接数据库,数据库当中有10条 记录,那么假设把这10条记录查询出来,在java程序中会将10条数据封装成10个java对象,然后把10个对象放到某一个集合当中集合不能直接存..原创 2021-11-16 19:44:55 · 364 阅读 · 0 评论 -
java学习笔记_进阶008
异常java语言中异常是以什么形式存在的呢?1.异常在java中以类的形式存在,每一个异常类都可以创建异常对象类是模板,对象是实际存在的个体java中异常处理机制异常在java中以类和对象的形式存在,那么异常的继承结构是怎样的?可以使用UML图来描述一下继承结构什么是UML?有什么用?uml是一种统一建模语言,一种图标式语言(画图的)uml不是只有java中使用,只要是面向对象的编程语言,都有UML一般画uml图的都是软件架构师或者是系统分析师,这原创 2021-11-16 19:20:33 · 72 阅读 · 0 评论 -
java学习笔记_进阶007
枚举类型枚举类型— 一种引用数据类型结果只有两种情况的,建议使用布尔类型。结果超过两种并且还是可以一枚一枚列举出来的建议使用枚举类枚举:一枚一枚可以列举出来的,才建议使用枚举类型枚举编译之后也是生成class文件枚举中的每一个值可以看做是“常量”egenum Result{//SUCCESS是枚举Result类型中的一个值//Fail是枚举Result类型中的一个值success,fail}...原创 2021-11-16 18:58:59 · 215 阅读 · 0 评论 -
java学习笔记_进阶006
String字符串的存储原理关于java 的jdk中内置的一个类:java.lang.StringString表示字符串类型,属于引用数据类型,不属于基本数据类型在java中随便使用双引号括起来的都是String对象java中规定,双引号括起来的字符串,是不可变的,也就是说“abc”自出生到最终死亡,不可变,不能变成“abcd",也不能变成”ab"在JDK当中双引号括起来的字符串,例如:“abc","def"都是直接存储在方法区的字符常量池当中的垃圾回收器是不会释放常量的原创 2021-11-16 18:36:59 · 78 阅读 · 0 评论 -
java学习笔记_进阶005
hashCode方法在object中的hashcode方法是怎样的?public native int hashCode();这个方法不是抽象方法,带有native关键字,底层调用c++程序hashcode方法返回的是哈希码:实际上就是一个java对象的内存地址,经过哈希算法,得出的一个值。所以hashcode()方法的执行结果可以等同看作一个java对象的内存地址...原创 2021-11-16 17:04:38 · 445 阅读 · 0 评论 -
java学习笔记_进阶004
关于object类中的equalsequals方法的源代码: public boolean equals(Object obj){ return (this==obj) }sun公司设计equals方法的目的是?以后编程的过程当中,都要通过equals方法来判断两个对象是否相等equals方法是判断两个对象是否相等的说明:判断两个基本数据类型的数据是否相等直接使用“==”就行判断两个java对象是否相等 ,怎么办?能不能使用“==”???原创 2021-11-16 16:56:03 · 79 阅读 · 0 评论 -
java学习笔记_进阶003
package 和import/**package为什么要使用packagepackage是java中包机制。包机制的作用是为了方便程序的管理,不同功能的类分别存放在不同的包下(按照功能划分的,不同的软件包具有不同的功能)package怎么用package是一个关键字,后面加包名。例如:package com.asa.javase.chaper;注意:package语句只允许出现在java源代码的第一行包名有没有命令规范?有一般都采用公司域名倒序的方式因为公原创 2021-11-16 16:43:38 · 56 阅读 · 0 评论 -
java学习笔记_进阶002
抽象类概述抽象类和接口以及抽象类和接口的区别抽象类什么是抽象类抽象类无法实例化,无法创建对象抽象类是:类和类之间有共同特征,将这些具有共同特征的类再进一步抽象形成了抽象类。由于类本身是不存在的,所以抽象类无法创建对象抽象类和抽象类之间可能还会有共同的特征,还可以再进一步再抽象类到对象是实例化,对象到类是抽象。由于类本身是不存在的,所以抽象类无法创建对象(无法实例化)抽象类属于什么类型属于引用数据类型抽象类怎么定义语法定义[修饰符列表] abstract cl原创 2021-11-16 15:25:37 · 75 阅读 · 0 评论 -
java学习笔记_进阶001
finalfinal修饰的类无法继承final为关键字final可以修饰变量以及方法还有类等final修饰的变量?final修饰的局部变量,一旦赋值不能重新赋值* eg:final int q=30;* q=23;* 这是错误的【重点】 final修饰的变量,只能赋一次值final修饰的方法?final修饰的方法无法被覆盖,被重写final修饰的类?final修饰的类无法继承final修饰的变量,如果这个变量是一个 “引用”会怎么样原创 2021-11-16 12:18:05 · 48 阅读 · 0 评论 -
java学习笔记016
super和this对比着学习this:this能出现在实例方法和构造方法中this的语法是:this. this()this不能使用在静态方法中this. 大部分情况下是可以省略的this. 什么时候不能省略呢?在区分局部变量和实例变量的时候不能省略this()只能出现在构造方法第一行,通过当前的构造方法去调用 本类 中其它的构造方法 目的是:代码复用supersuper能出现在实例方法和构造方法中super的语法是:super. super()supe原创 2021-11-15 18:21:37 · 204 阅读 · 0 评论 -
java学习笔记015
/**关于java中的包机制如何定义package - 在java源程序的第一行上编写package语句 - 语法结构 - package 包名; - 包命名规范 - 公司域名倒序+项目名+模块名+功能名; - 包名要求全部小写,包名也是标识符,必须遵守标识符的命名规则 - 一个包将来对应的是一个目录 目录之间用.隔开import 语句用来完成导入其他类,同一个包下的类不需要导入不在同一个包下需要手动导入impo原创 2021-11-15 16:52:35 · 237 阅读 · 0 评论 -
java学习笔记014
final关键字关于java语言当中final关键字final修饰的类无法被继承final修饰的方法无法被覆盖final修饰的变量一旦赋值之后,不可重新赋值final修饰的实例变量实例变量需要手动赋值,,不能采用系统给的默认值实例变量有默认值+final修饰的变量一旦赋值不能重新赋值,综合考虑,java语言最终规定实例变量使用final修饰之后,必须手动赋值,不能采用系统默认值。final修饰的引用final修饰的引用,一旦指向某个对象之后,不能再指向其他对象,那原创 2021-11-15 16:40:03 · 54 阅读 · 0 评论 -
java学习笔记013
多态/**java程序永远分为编译阶段和运行阶段先分析编译阶段,再分析运行阶段。编译无法通过,根本是无法运行的多态关于java语言当中的多态语法机制关于多态中涉及到的几个概念【只是多态的基础语法,多态的作用在后面会有介绍】 - 向上转型(upcasting) - 子类型-->父类型,又被称为:自动类型转换 - 向下转型(downcasting) - 父类型--》子类型,又被称为:强制类型转换 需要加强制类型转换符 - 需要记忆:原创 2021-11-15 16:31:56 · 52 阅读 · 0 评论 -
java学习笔记012
覆盖/**回顾java语言当中方法的重载: 1、方法重载又称为overload 2、方法重载什么时候使用? - **当在同一个类中,方法完成的功能是相似的,建议方法名相同,这样方便程序员的编程** 就像在调用一个方法似的,代码美观 3、什么条件满足之后构成方法重载 - 在同一个类当中 - 方法名相同 - 参数列表不同:类型、顺序、个数 4、方法重载和什么无关?关于java语言当中原创 2021-11-15 16:24:16 · 74 阅读 · 0 评论 -
java学习笔记011
继承/**继承是面向对象的三大特征之一继承基本的作用:代码复用。但是继承最重要的作用是:有了继承才有了以后“方法的覆盖”和“多态机制”继承语法格式; [修饰符列表] class 类名 extends 父类名{ 类体=属性+方法 }java语言当中的继承只支持单继承,一个类不能同时继承很多类,只能继承一个类。在c++中支持多继承关于继承中的一些术语 B类继承A类,其中: A类称为:父类、基类、超类、superclass B类称原创 2021-11-15 16:09:03 · 52 阅读 · 0 评论 -
java学习笔记010
/**什么时候成员变量声明为实例变量呢?所有对象都有这个属性,但是这个属性的值会随着对象的变化而变化【不同对象的这个属性具体的值不同】 ------ 实例变量什么时候成员变量声明为静态变量呢?所有属对象都有这个属性,并且所有对象的这个属性的值是一样的,建议定义为静态变量,节省内存的开销静态变量在类加载的时候初始化,内存在方法区中开辟,访问的时候不需要创建对象,直接使用 类名,静态变量 的方式访问所有静态的数据都是可以采用类名. ,也可以采用 引用. ,但是建议采用原创 2021-11-15 15:30:35 · 54 阅读 · 0 评论 -
java学习笔记009
学习this关键字/**this 是一个引用,this是一个变量,this变量中保存了内存地址指向了自身,this存储在JVM堆内存java对象内部创建100个java对象,每一个对象都有this,也就是说有100个不同的this没有static关键字的方法被称为 实例方法没有static关键字的变量被称为 实例变量实例变量 必须采用 引用. 方式访问当一个行为、动作执行的过程当中是需要对象参与的,那么这个方法一定要定义为 实例方法 ,不要带 static关键字原创 2021-11-15 14:46:22 · 49 阅读 · 0 评论 -
java学习笔记008
学习构造方法、构造器 constructor method/*构造方法语法结构[修饰符列表] 构造方法名(形式参数列表){构造方法体;}对于构造方法来说,返回值类型不需要指定,并且不能写 void.只要写上void,那么这个方法就成为普通方法了。普通方法的语法结构[修饰符列表] 返回值类型 方法名(形式参数列表){方法体;}对于构造方法来说,构造方法的方法名必须和类名保持一致构造方法的作用通过构造方法的调用,可以创建对象构造方法应该怎么调用?普通方原创 2021-11-15 14:25:00 · 53 阅读 · 0 评论 -
java学习笔记007
定义类的语法 /*** [修饰符列表] class 类名{* 属性;* 方法;* /* 属性通常采用变量来表示,既然是变量,那么变量肯定有数据类型。* 数据类型包括:基本数据类型+引用数据类型* 属性对应的是状态信息* * }- 封裝 - 封裝的步驟 - 所有属性私有化,使用private关键字进行修饰,private表示私有的,修饰的所有数据只能在本类中访问 - 对外提供简单的操作入口,也就是说以后外部程序要想访问私有属..原创 2021-11-15 13:42:53 · 54 阅读 · 0 评论 -
java学习笔记006
关于java语言当中的变量什么是变量变量本质上来说是内存中的一块空间,这块空间“有数据类型”,“有名字”、“有字面值”变量包含三部分,数据类型、名称、字面值[数据]变量是内存中存储数据的最基本的单元数据类型的作用不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间数据类型是指导程序在运行阶段应该分配多大的内存空间变量要求:变量中存储的具体的“数据”必须和变量的“数据类型”一致。当不一致的时候,编译会报错。声明/定义变量的语法格式数据类型 变量名数据类型:变原创 2021-11-14 20:39:10 · 49 阅读 · 0 评论 -
java学习笔记005
c 纯面向过程;c++半面向对象;java纯面向对象面向过程关注流程是怎么走的,关注因果关系优点:业务逻辑比较简单的程序,可以达到快速开发,前期投入成本低缺点:软件元素之间的耦合度非常高,只要其中的一环出问题,整个系统受到影响。导致最终的软件扩展力差。没有独立体的概念,所以无法达到组件复用面向对象关注对象能完成哪些功能优点:耦合度低,扩展力强。更容易解决现实世界中更复杂的业务逻辑。组件复用性强缺点:前期投入成本高,需要系统的分析设计面向对象三.原创 2021-11-14 20:24:35 · 59 阅读 · 0 评论 -
java学习笔记004
运算符算术运算符+-*/% 求余数[取模]++ 自加1- - 自减1note:一个表达式当中有多个运算符,运算符有优先级,不确定的加小括号,优先级得到提升。没有必要取专门记忆运算符的优先级++运算符可以出现在变量前,也可以出现在变量后,无论是变量前还是变量后。只要++运算结束,该变量中的值一定会自加1++ 出现在变量后,规则:先做赋值运算,再对变量中保存的值进行自加1++ 出现在变量前。规则:先进行自加1运算,然后再进行赋值操作关系运算符>>.原创 2021-11-14 19:31:09 · 354 阅读 · 0 评论 -
java学习笔记003
方法方法就是一段代码片段,并且这段代码片段可以完成某个特定的功能,并且可以被重复的使用方法是定义在类体当中的,在一个类体当中可以定义多个方法,方法编写的位置没有先后顺序,可以随意方法体当中不能再定义方法方法体由java语句构成,方法体当中的代码遵守自上而下的顺序依次执行方法怎么定义,语法结构[修饰符列表] 返回值类型 方法名(形式参数列表){ 方法体;}修饰符列表可选项,不是必须的目前统一写成:public static方法的修饰符列表当中有static关键字的话,怎.原创 2021-11-14 19:05:44 · 63 阅读 · 0 评论 -
java学习笔记002
关于java中的标识符什么是标识符?在java源程序当中,凡是程序员有权利自己命名的单词都是标识符标识符可以标记什么元素?类名方法名变量名接口名常量名标识符的命名规则?[不按照这个规则来,编译器会报错]一个合法的标识符只能由数字、字母、下划线、美元符号组成,不能含有其他特殊符号不能以数字开头严格区分大小写关键字不能作为标识符理论上无长度限制,但是最好不要太长标识符的命名规范?[只是一种规范,不属于语法,不遵守规范编译器不会报错]最好见名知意思遵守驼峰.原创 2021-11-14 16:16:49 · 217 阅读 · 0 评论 -
java学习笔记001
关于java中的数据类型数据类型的作用是什么程序当中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用的空间大小是不同的数据类型的作用是指导JVM在运行程序的时候给该数据分配多大的内存空间java中的数据类型包括两种基本数据类型基本数据类型包括四大类八小种第一类:整数型byte,short,int,long第二类:浮点型float.double第三类:布尔型boolean第四类:字符型char八种基本数据类型各自占用的空间..原创 2021-11-14 16:06:55 · 240 阅读 · 0 评论