聚合函数 count 返回结果集中行的数目 sum 返回结果集中所有值得总和 avg 返回结果集中所有值得平均值 max 返回结果集中所有值中最大值 min 返回结果集中所有值中最小值 count select count([* | all | distinct] expr) from 表名; : 计算所有选择的行, 包括 null all : 计算指定列所有的非空行, 默认选项 distinct : 计算指定列所有唯一非空值 sum select sum([all | distinct] expr) as 别名 from 表名; avg select avg(mark) as ‘平均成绩’ from sutdentwhere studentID = 10;输出表 student 中 studentID 为 10 的所有 mark 的平均值 最大值和最小值123select max(mark) as '最高成绩', min(mark) as '最低成绩'from studentwhere examID = 6; ...
操作表结构 create (创建) 创建表 12345create table [if not exists] 表名( 列名 列类型, 列名 列类型, ...); 创建表并从其他表中复制数据 123create table 表名asselect * from 表名 alter (修改) 添加列定义 (列名必须是原表中不存在的) 1234alter table 表名 add( 列名 数据类型 , ...); 修改列定义 (列名必须是原表中存在的) 1alter table 表名 modify 列名 数据类型; MySQL 中 一次只能修改一个列定义 如果修改数据列的默认值, 只会对以后插入操作有作用, 对以前已经存在的数据不会有任何影响 删除列 1alter table 表名 drop 列名; 重命名数据表 1alter table 旧表名 rename to/as 新表名; 改列名 1alter table 表名 change 旧列名 新列名 type; 改列名并修改数据类型 1alter table 表名 ...
表头 (header): 每一列的名称; 列 (row): 具有相同数据类型的数据的集合; 行 (col): 每一行用来描述某个人 / 物的具体信息; 值 (value): 行的具体信息, 每个值必须与该列的数据类型相同; 键 (key): 表中用来识别某个特定的人或物的方法, 键的值在当前列中具有唯一性 SQL 语句的分类 DQL 查询语句 select DML 操作语句 insert update delete DDL 定义语句 create alter drop truncate DCL 控制语句 grant revoke 实务控制语句 commit rollback savepoint MySQL 服务的启动、停止与卸载在 Windows 命令提示符下运行:启动: net start MySQL停止: net stop MySQL卸载: sc delete MySQL MySQL 的登录MySQL 参数 参数 描述 -D, –fatabase = name 打开指定数据库 –delimiter = name 指定分隔符 ...
public class Propertiesextends Hashtable<Object,Object>Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。新建一个文件内容为键 1 = 值 1键 2 = 值 2… 使用此类可以对文件数据进行持久化保存 方法的使用 load(InputStream inStream); 从输入流中读取属性列表(键和元素对)。 12Properties pro = new Properties();pro.load(new FileInputStream(相对路径或绝对路径));//此方法将抛出FileNotFoundException getPropertiy(String key) 使用指定的键在此属性列表中搜索属性, 返回 String getProperty(String key, String defaultValue) 用指定的键在属性列表中搜索属性。返回 String setProperty(String ...
Java Conllection Frame 在集合框架中,分为两种 API: 装载数据的集合类 HashSet 类 ArrayList 类 LinkedList 类 HashMap 类 …. 操作集合的工具类 Arrays 类 Collections 类 Iterator 接口java.utilpublic interface IteratorIterator 模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构 12345public interface Iterator{ boolean hasNext();//如果仍有元素可以迭代,则返回 true Object next();//返回迭代的下一个元素。 NoSuchElementException - 没有元素可以迭代。 void remove();//从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。} Iterable 接口java.langpublic inte ...
看代码说结果: 1234567public static void main(String[] args){ char x = ‘b’; int i = 0;1. System.out.println(true?x:0); //这个0是short类型2. System.out.println(true?x:1111111110);3. System.out.println(false?i:x);} 要类型转换直接写出的 0 是 short 类型 b9898 解释:条件运算符的 3 个核心要点 如果第二个和第三个操作数具有相同的类型, 那么他就是条件表达式的类型. 如果一个操作数的类型是 byte,shotr 或 char, 而另一个操作数类型是 int 的常量表达式, 条件表达式的值是可以用类型 byte,short 或 char 表示的, 否则, 将操作数类型运用二进制数字提升 (向上转型), 二表达式的类型就是第二个和第三个操作数提升后的类型 System.out.println(true?x:0);对于语句 1 中的条 ...
Collections 类此类方法众多, 只介绍几个常用方法 sort() 对元素进行排序, 可以传入比较器 max() 返回最大元素, 可以传入比较器 min() 返回最小元素, 可以传比较器 reverse() 反排序 shuffle() 混排 Arrays 类此类包含用来操作数组(比如排序和搜索)的各种方法。方法更多, 还是看 API 吧 比较器Comparable内部比较器public interface Comparable此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。int compareTo(T o)一个类继承了 Comparable 接口后, 重写 compareTo() 方法, 就能按照我们自己的规则排序 例子: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950public class Student implements Comparable ...
抽象类 把多个类中相同的方法声明给抽取出来。定义到一个类中。 一个方法如果只有方法声明,没有方法体,那么该方法必须定义为抽象方法。 而一个类中如果有抽象方法,那么,该类必须定义为抽象类。 抽象类的特点: 抽象方法和抽象类都必须用 abstract 表示。 一个类继承抽象类的时候; 要么:本身是一个抽象类。 要么:实现抽象类中的所有抽象方法。 抽象类有构造方法, 但是不能实例化, 可以按照多态的使用方式使用。 成员特点: 成员变量 可以是变量,也可以是常量。 构造方法 有 用于子类访问父类构造方法,初始化父类数据 成员方法 可以是抽象,也可以非抽象。 抽象类的好处: 抽象类中的非抽象方法提高了代码的复用性。 抽象类中的抽象方法强制要求子类必须重写某些方法。 抽象类中的几个小问题: 抽象类不能实例化,构造方法有什么用呢? 用于子类访问父类数据的初始化。 如果一个类中没有抽象方法,而类却被定义为了抽象类,请问为什么? 不让创建对象。 abstract 不能和哪些关键字共存: private: 冲突 final: 冲突 static: 无意义 ...
相同的行为, 不同的实现 多态多态, 多种状态, 而多种状态的体现就在不同的实现上面, 也可以说是不同的效果.举个例子:我这里有 3 个杯子, 里面都装了白酒, 你并不知道它们都是什么酒, 只有等你喝过之后才能知道, 第一个杯子是二锅头, 第二个是五粮液, 第三个是茅台. 12Maotai mo = new Maotai();Wine w = mo; 这里我们可以这样理解, 茅台是酒类的一种, 它们之间是继承关系, 当 a 指向了 mo 这个对象的时候, 它会自动向上转型为 Wine, 这也就是说 w 是可以指向茅台这个实例. 这样做的好处就是, 在继承中我们知道子类是父类的扩展, 它可以提供比父类更加强大的功能,如果我们定义了一个指向子类的父类引用类型,那么它除了能够引用父类的共性外,还可以使用子类强大的功能 但是向上转型存在一些缺憾,那就是它必定会导致一些方法和属性的丢失,而导致我们不能够获取它们 所以对于多态我们可以总结如下: 指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该 ...
Java 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。 子类拥有父类非 private 的属性和方法。 子类可以拥有自己属性和方法,即子类可以对父类进行扩展。 子类可以用自己的方式实现父类的方法。(重载) 继承 (类与类的关系)有相同的属性和相同的行为时, 定义为父类,其他的 子类 只需要写特有的属性和方法. 在面向对象中, 可以通过扩展一个已有的类, 并继承该类的属性和行为,来创建一个新的类, 从而达到代码的复用. 继承是所有 OOP 语言不可缺少的部分,在 java 中使用 extends 关键字来表示继承关系。当创建一个类时,总是在继承,如果没有明确指出要继承的类,就总是隐式地从根类 Object 进行继承。 继承不会继承父类的构造方法因为: 语法上如果继 ...
新时代码农
未读什么是封装 隐藏对象的属性和实现细节,仅对外公开接口; 控制在程序中属性的读和修改的访问级别; 将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成 “类”,其中数据和函数都是类的成员。 通俗的说就是:利用抽象数据类型将数据和基于数据的操作组合在一起, 是其构成一个不可分割的独立实体, 数据被保护在抽象数据类型的内部, 尽可能的隐藏内部的细节, 只保留一些对外的接口使之与外部发生联系.用户无需知道内部的实现细节, 但可以通过该对象对外提供的接口来访问该对象. 封装的好处 良好的封装能够减少耦合 类内部的结构可以自由修改 可以对成员进行更精确的控制 隐藏信息, 实现细节 JavaBeanJavaBean 规范: 标准 java 类 Sun 公司规定为私有属性提供符合命名规范的 set 和 get 方法 JavaBean 必须声明为 public class JavaBean 的所有属性必须声明为 private 通过 setter 和 getter 方法设值和取值 通过 JSP 调用是, 则需要一个无参的构造方法 编 ...
Math 类Math 类中所有的属性和方法都是静态的, 也就是说全露都可以可用 Math. 属性和 Math. 方法名调用属性和方法. 属性 static double E: 比任何值都接近 e 的 double 值 static double PI: 比任何值都接近 pi 的 double 值 几个常用的方法 ceil(double a) : 返回大于等于这个参数的整数 Math.ceil(-12.1) 返回 - 12 ; Math.ceil(12.8) 返回 13; floor(double a): 返回小于等于参数的整数; Math.floor(-12.1) 返回 - 13;Math.floor(12.9) 返回 12; rint(double a): 返回接近参数并等于某一整数的 double 值 Math.floor(-12.1) 返回 - 12;Math.floor(12.9) 返回 13; random(): 返回 [0,1) 之间的 double 值; 随机数获得随机数的 3 种方法 通过 System.currentTimeMillis( ...
字符串操作在编程中我们会大量使用, 所以掌握字符串相关类对我们来说很重要.Java 为我们提供了 3 种操作字符串的类. 由于 String 类的特殊, 有必要了解一下 Java 运行时内存的概念, 才能更好的理解字符串相关类的底层操作. Java 中内存知识在反射中我们学到, 对于每一个被 JVM 加载到内存中的类, 都会在方法区保存一份这个类的信息;包括: 类的基本信息 类的全名, 直接父类的全民 该类的接口 该类的访问修饰符 类的详细信息 运行时常量池 –> 字符串, 常量, 类名和方法名常量. 字段信息 –> 字段名, 类型, 修饰符 方法信息 –> 方法名, 返回值类型, 参数类型, 修饰符, 异常, 方法的字节码 静态变量 –> 在方法区中的静态区保存被类的所有实例共享的变量和静态快 到类 classloader 的引用 到类 class 的引用 JVM 为每一个被加载到内存的类型创建一个 class 实例, 用实例代表这个被加载的类 由此引出反射的概念:在加载类的时候, 加入方法区的所有信息, 最后都会影城 Class 类的实例 ...
概述 Java 异常是 Java 提供的一种识别及响应错误的一致性机制。 Java 异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。 在有效使用异常的情况下,异常能清晰的回答 what, where, why 这 3 个问题: 异常类型 –>” 什么” 被抛出; 异常堆栈跟踪 –>” 在哪” 抛出; 异常信息 –>” 为什么” 会抛出; Throwable 类 Throwable 是 Java 语言中所有错误或异常的超类。Throwable 包含两个子类: Error 和 Exception。它们通常用于指示发生了异常情况。Throwable 包含了其线程创建时线程执行堆栈的快照,它提供了 printStackTrace() 等接口用于获取堆栈跟踪数据等信息。 ExceptionException 及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。 RuntimeExceptionRuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。编译器 ...