weekend-4

java----类

sql-----表

#######################################

String在java中不属于关键字,String是一个类名。
当然可以作为变量名。

this关键字是代表当前对象的引用

this有两种使用情况,一种就是直接使用“this.属性名”或者“this.方法名()”,
另外一种是“this()”。

HashMap集合可以存储null值和null键

HashMap底层数数组+链表/红黑树的键值对结构,可以存储null值与null键。
HashMap实现Map接口,它允许任何引用类型的键和值对象,并允许将null用作键或值

HashMap 允许插入键为 null 的键值对。但是因为无法调用 null 的 hashCode()
方法,也就无法确定该键值对的桶下标,只能通过强制指定一个桶下标来存放。

在HashMap中添加key==null的Entry时会调用putForNullKey方法

HashMap本身是一个线程不安全的容器(Map),
也就是使用场景局限于单线程环境,因此存储null键null值 通常不会有什么问题

hashmap根本就不检查value所以value为空不为空 一点关系都没有
允许为空是说明允许一个key为空

map使用key进行索引查value. 如果key皆为null, 那全部资料都在同一个位置, 根本无法产生map.

在物件程序中, null代表无物件, 所以无法进行任何相关操作. 你如果是没有值, 可能要考虑定义表示为空之值, 而不能用null替代.

如果你不需要key, 就用Array之类的.

分支结构switch(expr),若jdk为jdk1.8,那么expr可以是Integer ,int,String
Integer是因为可以自动拆装箱

String类 下

int indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch, int fromIndex)
返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
int indexOf(String str)
返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str, int fromIndex)
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

在JAVA的异常处理模型中,能单独和finally语句一起使用的是

try代码块用于存放可能会发生异常的代码,
也写成try-catch
或try-finally
或try-catch-finally的结构
catch用于匹配预定的异常,
如果匹配到,就执行预先设计好的解决方案throw是一个用于抛出自定义异常的关键字throws可以用来在方法定义上抛出本方法可能会抛出的异常,
如果有多个,使用逗号分隔

final关键字可以修饰
常量,方法,类
不可以修饰变量

如果某异常继承 RuntimeException,则该异常可以不被声明,
Throwable
/
Exception Error
/
RuntimeException(这种异常是错误结果直接可见的,不会报错,也不用专门告诉使用者)

为什么RuntimeException可以允许不被catch呢?

首先我们可以看看RuntimeException都有哪些子类型:

1 NullPointerException,这个不用多说了。

2 NumberFormatException,字符串转化成数字时。

3 ArrayIndexOutOfBoundsException, 数组越界时。

4 StringIndexOutOfBoundsException, 字符串越界时。

5 ClassCastException,类型转换时。

6 UnsupportedOperationException,
该操作不支持,一般子类不实现父类的某些方法时。

7 ArithmeticException,零作为除数等。

8 IllegalArgumentException,表明传递了一个不合法或不正确的参数

可以看到大多数错误并不是由于程序本身有问题,而是运行时输入在某些case下导致的,有更多的不确定性。

而且Java开始的时候并没有异常处理机制,所以从兼容性到实现代价来讲就设计成这个样子了。

异常的继承结构中,父级是Throwable,下一级才是Error与Exception我们可以选择抛出异常

异常不能直接抛给main()因为调用main()的是JVM,没人处理

为什么Java中的静态 方法 不能是 抽象的:

static静态方法又叫类方法,意义在于不用实例化对象即可直接调用,

而abstract 修饰的抽象方法,是没有方法体的,本身没有任何意义,它
的价值在于被继承重写,但是重写是基于对象的。

所以这两者从最基本的概念都是冲突的。

String类的indexOf:
返回指定字符在字符串中第一次出现的索引

如果一个类中出现了一个抽象方法,这个类必须被定义成抽象类

抽象类中可以全是普通方法
(我只是不想让别人可以直接通过这个类的对象调用里面的方法)

抽象类中有构造方法,但构造方法不能用于创建本类对象

方法名称必须相同,参数列表必须不同(包括类型,个数和顺序)
重载的参数列表不同,重写的参数列表必须相同。

静态是不存在重写这样的概念的

#######################################

java类先继承后实现

char底层是一个数字(0~655635)
但String是类对象

java enum枚举(隐藏的基本类型)
enum 修饰的变量 —> 相当于public static finally修饰变量

public static finally---->常量
finally—>不可变

Java总允许在方法的后面使用throws关键字对外声明该方法有可能发生异常
public void method()throws Exception{
。。。
}
throw 语句抛出一个自定义错误。
{
。。。
throw new MYEXCEPTION();
}

CLASS MYEXCEPTION()EXTENDS EXCEPTION
{
@OVERRIDE


}

外键约束—多表场景下

表A uid 1 2 3
表B userid 3
select * from A where A.uid = B.userid
在表二中设置一列用来表示与表一的关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值