
疯狂Java讲义
文章平均质量分 92
撩得Android一次心动
努力不一定成功,放弃一定失败。只要内心不乱,外界就很难改变你什么。不要艳羡他人,不要输掉自己,加油!!!
展开
-
疯狂Java讲义(十三)----第五部分
1. Javar 的 RowSetRowSet接口继承了ResultSet接口,RowSet接口下包含JdbcRowSet.CachedRowSet、FilteredRowSet、JoinRowSet和 WebRowSet 常用子接口。除JdbcRowSet需要保持与数据库的连接之外,其余4个子接口都是离线的RowSet,无须保持与数据库的连接。与ResultSet相比,RowSet默认是可滚动、可更新、可序列化的结果集,而且作为JavaBean使用,因此能方便...原创 2021-11-11 21:07:30 · 3208 阅读 · 0 评论 -
疯狂Java讲义(十三)----第四部分
1.执行SQL语句的方式前面介绍了JDBC执行查询等示例程序,实际上,JDBC不仅可以执行查询,也可以执行 DDL、DML等SQL语句,从而允许通过JDBC最大限度地控制数据库。 (1)使用Java 8新增的executeLargeUpdate方法执行DDL和DML语句Statement提供了三个方法来执行SQL语句,前面已经介绍了使用executeQuery()来执行查询语句,下面将介绍使用executeLargeUpdate()(或executeU...原创 2021-11-09 14:58:42 · 3167 阅读 · 0 评论 -
疯狂Java讲义(十三)----第三部分
1.SQL语法 (10)数据库函数正如前面看到的连接字符串使用的concat 函数,每个数据库都会在标准的SQL基础上扩展一些函数,这些函数用于进行数据处理或复杂计算,它们通过对一组数据进行计算,得到最终需要的输出结果。函数一般都会有一个或者多个输入,这些输入被称为函数的参数,函数内部会对这些参数进行判断和计算,最终只有一个值作为返回值。函数可以出现在SQL语句的各个位置,比较常用的位置是select之后和 where子句中。根据函数对多行数据的处理方式...原创 2021-11-09 10:53:53 · 2617 阅读 · 0 评论 -
疯狂Java讲义(十三)----第二部分
1.SQL语法 (5)数据库约束前面创建的数据表仅仅指定了一些列定义,这仅仅是数据表的基本功能。除此之外,所有的关系数据库都支持对数据表使用约束,通过约束可以更好地保证数据表里数据的完整性。约束是在表上强制执行的数据校验规则,约束主要用于保证数据库里数据的完整性。除此之外,当表中数据存在相互依赖性时,可以保护相关的数据不被删除。大部分数据库支持下面5种完整性约束。NOT NULL:非空约束,指定某列不能为空。 UNIQUE:唯一约束,指定某列...原创 2021-11-08 21:40:25 · 1980 阅读 · 0 评论 -
疯狂Java讲义(十三)----第一部分
通过使用JDBC,Java程序可以非常方便地操作各种主流数据库,这是Java语言的巨大魅力所在。由于Java语言的跨平台特性,所以使用JDBC编写的程序不仅可以实现跨数据库,还可以跨平台,具有非常优秀的可移植性。程序使用JDBCAPI以统一的方式来连接不同的数据库,然后通过Statement对象来执行标准的SQL语句,并可以获得SQL语句访问数据库的结果,因此掌握标准的SQL 语句是学习JDBC编程的基础。本章将会简要介绍关系数据库理论基础,并以MySQL数据库为例来讲...原创 2021-11-07 23:21:20 · 2256 阅读 · 0 评论 -
疯狂Java讲义(十)----第二部分
1.Checked异常和Runtime异常体系Java的异常被分为两大类:Checked异常和Runtime异常(运行时异常)。所有的RuntimeException类及其子类的实例被称为 Runtime异常;不是 RuntimeException类及其子类的异常实例则被称为Checked 异常。只有Java语言提供了Checked异常,其他语言都没有提供 Checked异常。Java认为Checked异常都是可以被处理(修复)的异常,所以Java程序必须显...原创 2021-11-05 18:52:47 · 1923 阅读 · 0 评论 -
疯狂Java讲义(十)----第一部分
本章内容:异常机制已经成为判断一门编程语言是否成熟的标准,除传统的像C语言没有提供异常机制之外,目前主流的编程语言如Java、C#、Ruby、Python等都提供了成熟的异常机制。异常机制可以使程序中的异常处理代码和正常业务代码分离,保证程序代码更加优雅,并可以提高程序的健壮性。Java的异常机制主要依赖于try、catch、finally、throw和 throws五个关键字,其中try关键字后紧跟一个花括号扩起来的代码块(花括号不可省略),简称try块,它里面...原创 2021-11-05 00:22:32 · 1912 阅读 · 0 评论 -
疯狂Java讲义(九)
本章内容:本章的知识可以与前一章的内容补充阅读,因为Java 5增加泛型支持在很大程度上都是为了让集合能记住其元素的数据类型。在没有泛型之前,一旦把一个对象“丢进”Java集合中,集合就会忘记对象的类型,把所有的对象当成Object类型处理。当程序从集合中取出对象后,就需要进行强制类型转换,这种强制类型转换不仅使代码臃肿,而且容易引起ClassCastExeception异常。增加了泛型支持后的集合,完全可以记住集合中元素的类型,并可以在编译时检查集合中元素的...原创 2021-11-03 01:27:50 · 2100 阅读 · 0 评论 -
疯狂Java讲义(八)----第四部分
2.Java8增强的Map集合 (4)使用Properties 读写属性文件Properties类是 Hashtable类的子类,正如它的名字所暗示的,该对象在处理属性文件时特别方便(Windows 操作平台上的 ini文件就是一种属性文件)。Properties类可以把Map对象和属性文件关联起来,从而可以把 Map对象中的key-value对写入属性文件中,也可以把属性文件中的“属性名=属性值”加载到 Map对象中。由于属性文件里的属性名、属性值只能是字符串类型,...原创 2021-11-01 23:50:10 · 1880 阅读 · 0 评论 -
疯狂Java讲义(八)----第三部分
1. Queue集合Queue用于模拟队列这种数据结构,队列通常是指“先进先出”(FIFO)的容器。队列的头部保存在队列中存放时间最长的元素,队列的尾部保存在队列中存放时间最短的元素。新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素。通常,队列不允许随机访问队列中的元素。Queue接口中定义了如下几个方法。void add(Object e):将指定元素加入此队列的尾部。 Object element():获取队列头部的...原创 2021-11-01 00:48:58 · 2027 阅读 · 0 评论 -
疯狂Java讲义(八)----第二部分
1.Set集合前面已经介绍过Set集合,它类似于一个罐子,程序可以依次把多个对象“丢进”Set集合,而Set集合通常不能记住元素的添加顺序。Set集合与Collection 基本相同,没有提供任何额外的方法。实际上 Set就是Collection,只是行为略有不同(Set不允许包含重复元素)。Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入。上面...原创 2021-10-31 00:08:18 · 1952 阅读 · 0 评论 -
疯狂Java讲义(八)----第一部分
本章重点:Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用的数据结构,如栈、队列等。除此之外,Java 集合还可用于保存具有映射关系的关联数组。Java集合大致可分为Set、List、Queue和 Map四种体系,其中Set 代表无序、不可重复的集合;List 代表有序、重复的集合;而Map则代表具有映射关系的集合,Java 5又增加了Queue体系集合,代表一种队列集合实现。Java集合就像一种容器,可以把多个对象(实际上是对象的引...原创 2021-10-30 00:54:15 · 2029 阅读 · 0 评论 -
疯狂Java讲义(七)----第三部分
1.变量处理和方法处理Java 9引入了一个新的VarHandle类,并增强了原有的MethodHandle类。通过这两个类,允许Java像动态语言一样引用变量、引用方法,并调用它们。 (1)Java 9增强的MethodHandleMethodHandle为Java增加了方法引用的功能,方法引用的概念有点类似于C的“函数指针”。这种方法引用是一种轻量级的引用方式,它不会检查方法的访问权限,也不管方法所属的类、实例方法或静态方法,MethodHand...原创 2021-10-29 01:06:14 · 1966 阅读 · 0 评论 -
疯狂Java讲义(七)----第二部分
1.Math类Java提供了基本的+、-、*、/、%等基本算术运算的运算符,但对于更复杂的数学运算,例如.三角函数、对数运算、指数运算等则无能为力。Java 提供了Math工具类来完成这些复杂的运算,Math类是一个工具类,它的构造器被定义成private的,因此无法创建Math类的对象; Math 类中的所有方法都是类方法,可以直接通过类名来调用它们。Math类除提供了大量静态方法之外,还提供了两个类变量: PI和E,正如它们名字所暗示的,它们的值分别等于π和e。...原创 2021-10-28 00:42:42 · 2168 阅读 · 0 评论 -
疯狂Java讲义(七)----第一部分
本章要点:Oracle为Java提供了丰富的基础类库,Java 8提供了4000多个基础类(包括下一章将要介绍的集合框架),通过这些基础类库可以提高开发效率,降低开发难度。对于合格的Java程序员而言,至少要熟悉Java SE中 70%以上的类(当然本书并不是让读者去背诵Java API文档),但在反复查阅API文档的过程中,会自动记住大部分类的功能、方法,因此程序员一定要多练,多敲代码。Java 提供了String、StringBuffer和StringBuil...原创 2021-10-27 11:07:28 · 1905 阅读 · 0 评论 -
疯狂Java讲义(六)----第四部分
1.枚举类在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象;再比如行星类,目前只有8个对象。这种实例有限而且固定的类,在Java里被称为枚举类。在早期代码中,可能会直接使用简单的静态常量来表示枚举,例如如下代码:这种定义方法简单明了,但存在如下几个问题。类型不安全:因为上面的每个季节实际上是一个int整数,因此完全可以把一个季节当成一个int整数使用,例如进行加法运算SEASON_SPRING + SEASON_SUMMER,这样的代码完全正常。...原创 2021-10-26 00:25:23 · 2167 阅读 · 0 评论 -
疯狂Java讲义(六)----第三部分
1.内部类大部分时候,类被定义成一个独立的程序单元。在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类(有的地方也叫嵌套类),包含内部类的类也被称为外部类(有的地方也叫宿主类)。Java 从JDK 1.1开始引入内部类,内部类主要有如下作用。内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。假设需要创建Cow类,Cow类需要组合一个CowLeg对象,CowLeg类只有在Cow类里才有效,离开了Cow类之...原创 2021-10-25 12:59:33 · 2158 阅读 · 0 评论 -
疯狂Java讲义(六)----第二部分
1.抽象方法和抽象类抽象方法是只有方法签名,没有方法实现的方法。具体方法由子类提供。抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。抽象方法和抽象类的规则如下。抽象类必须使用 abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽象方法不能有方法体。 抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。即使抽象类里不包含抽象方法,这个抽象...原创 2021-10-24 10:45:19 · 2030 阅读 · 0 评论 -
疯狂Java讲义(六)----第一部分
本章要点:JDK1.5提供了自动装箱和自动拆箱功能,允许把基本类型值直接赋给对应的包装类引用变量,也允许把包装类对象直接赋给对应的基本类型变量。 Java提供了final 关键字来修饰变量、方法和类,系统不允许为final变量重新赋值,子类不允许覆盖父类的 final方法,final类不能派生子类。通过使用final关键字,允许Java实现不可变类,不可变类会让系统更加安全。 abstract和 interface两个关键字分别用于定义抽象类和接口,抽象类和接口都是从多个子类中抽象出来的共同...原创 2021-10-23 01:06:35 · 962 阅读 · 0 评论 -
疯狂Java讲义(五)----第二部分
1.调用父类构造器子类不会获得父类的构造器,但子类构造器里可以调用父类构造器的初始化代码,类似于前面所介绍的一个构造器调用另一个重载的构造器。在一个构造器中调用另一个重载的构造器使用this调用来完成,在子类构造器中调用父类构造器使用super 调用来完成。从上面程序中不难看出,使用super调用和使用this 调用也很像,区别在于super调用的是其父类的构造器,而this调用的是同一个类中重载的构造器。因此,使用super调用父类构...原创 2021-10-22 01:27:03 · 928 阅读 · 1 评论 -
疯狂Java讲义(五)----第一部分
一.定义类:对一个类定义而言,可以包含三种最常见的成员:构造器、成员变量和方法,三种成员都可以定义零个或多个,如果三种成员都只定义零个,就是定义了一个空类,这没有太大的实际意义。类里各成员之间的定义顺序没有任何影响,各成员之间可以相互调用,但需要指出的是,static修饰的成员不能访问没有static修饰的成员。成员变量用于定义该类或该类的实例所包含的状态数据,方法则用于定义该类或该类的实例的行为特征或者功能实现。构造器用于构造该类的实例,Java语言通过ne...原创 2021-10-21 00:50:14 · 862 阅读 · 0 评论 -
疯狂Java讲义(四)
1.控制循环结构Java语言没有提供 goto语句来控制程序的跳转,这种做法提高了程序流程控制的可读性,但降低了程序流程控制的灵活性。为了弥补这种不足,Java提供了continue和 break 来控制循环结构。除此之外,return可以结束整个方法,当然也就结束了一次循环。 使用break结束循环break语句不仅可以结束其所在的循环,还可以直接结束其外层循环。此时需要在 break后紧跟一个标签,这个标签用于标识一个外层循环。Java中的...原创 2021-10-20 00:12:17 · 949 阅读 · 0 评论 -
疯狂Java讲义(三)
1. Java 9 的标识符规则标识符就是用于给程序中变量、类、方法命名的符号。Java语言的标识符必须以字母、下画线(_)、美元符(S)开头,后面可以跟任意数目的字母、数字、下画线(_)和美元符($)。此处的字母并不局限于26个英文字母,甚至可以包含中文字符、日文字符等。由于Java 9支持Unicode 8.0字符集,因此Java的标识符可以使用Unicode 8.0所能表示的多种语言的字符。Java语言是区分大小写的,因此 abc和Abc是两个不同的标识符...原创 2021-10-19 00:54:53 · 718 阅读 · 0 评论 -
疯狂Java讲义(二)
Java语言是纯粹的面向对象的程序设计语言,这主要表现为Java完全支持面向对象的三种基本特征:继承、封装和多态。Java 语言完全以对象为中心,Java程序的最小程序单位是类,整个 Java 程序由一个一个的类组成。Java完全支持使用对象、类、继承、封装、消息等基本概念来进行程序设计,允许从现实世界中客观存在的事物(即对象)出发来构造软件系统,在系统构造中尽可能运用人类的自然思维方式。实际上,这些优势是所有面向对象编程语言的共同特征。面向对象的方式实际上由O...原创 2021-10-18 19:07:18 · 1600 阅读 · 0 评论 -
疯狂Java讲义(一)
1.编译型语言和解释型语言的区别Java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征,因为Java程序要经过先编译,后解释两个步骤。有的编程语言要求必须提前将所有源代码一次性转换成二进制指令,也就是生成一个可执行程序(Windows 下的 .exe)(有一个成品,以后也可以使用),比如C语言、C++、Golang、Pascal(Delphi)、汇编等,这种编程语言称为编译型语言,使用的转换工具称为编译器。有的编程语言可以一边执行一边转换,需要...原创 2021-10-16 23:55:01 · 2552 阅读 · 0 评论