本文共 3369 字,大约阅读时间需要 11 分钟。
【前言】今天做了几道题,难度是最小的,但是还是错了很多。我认为这是平时自己对基础知识点的疏忽,和不关心所导致的。当然,这也是我自己能力的一部分。对此,我认识到自己的不足,希望现在正迈入编程的你,也能以此为戒,好好学习,认真钻研每一个小的知识点。
【易错题】
自动转换:byte-->short-->int-->long-->float-->double
整数类型(4) | byte 8 位 -128~127 | short 16 位 -32768 ~ 32767 | int 32位 -2^31-1~2^31 | long 64位
|
浮点数类型(2) | float 32 位 1 位符号位,8 位指数,23 位有效尾数 | double 64 位 1 位符号位,11 位指数,52 位有效尾 | ||
字符类型(1) | char 16 位 是整数类型 0~2^16-1 | |||
布尔类型(1) | boolean true 真 false 假 |
答:链接:来源:牛客网
在CSS中,html中的标签元素大体被分为三种不同的类型: 块状元素、内联元素(又叫行内元素)和内联块状元素。常用的块状元素有:
<div>、<p>、<h1>…<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
什么是块级元素?
在html中<div>、<p>、<h1>、<form>、<ul>和<li>就是块级元素。设置display:block就是将元素显示为块级元素。如下代码就是将内联元素a转换为块状元素,从而使a元素具有块状元素特点。 a{display:block;}
块级元素特点:
1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行);
2、元素的高度、宽度、行高以及顶和底边距都可设置。
3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。
常用的内联元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code> 在html中,<span>、<a>、<label>、<strong> 和<em>就是典型的内联元素(行内元素)(inline)元素。
当然块状元素也可以通过代码display:inline将元素设置为内联元素。如下代码就是将块状元素div转换为内联元素,从而使div 元素具有内联元素特点。
div{ display:inline; } ...... <div>我要变成内联元素</div>
内联元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度及顶部和底部边距不可设置;
3、元素的宽度就是它包含的文字或图片的宽度,不可改变。
常用的内联块状元素有:
<img>、<input>
内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。
inline-block 元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度、行高以及顶和底边距都可设置。
重载:OverLoad 同名不同参,返回值无关。
1 同一个类中,方法名相同,参数列表不同的2个或多个方法构成方法的重载
2 参数列表不同指参数的类型,参数的个数,参数的顺序至少一项不同
3 方法的返回值类型,方法的修饰符可以不同。
4 可以抛出不同的异常
重写:Override 同名同参
1.父类中被final修饰的方法不能被重写
2.子类的重写方法不能比父类的被重写方法有更严格的访问级别,但可以更广泛。也就是 子类覆盖方法的访问权限必须大于等于 父类被重写方法的访问权限
3.方法名必须一样
4.参数列表必须一样。
5.返回值类型必须一样
6.重写方法不能抛出新的异常或者比被重写方法声明的检查异常更广的检查异常。但是可以抛出更少,更有限或者不抛出异常。
7.如果一个方法不能被继承,则不能重写它。最典型的例子为,被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
8.如果想调用父类被覆盖的方法,用super关键字调用
答:class A implements B,C
答:private 权限限于同一个类中; default 权限限于同一个包中,即包权限=default权限; protected权限限于同一个包中,以及不在同一个包中的子类 public 权限在不同包中都可以(public>protected>default>private)
|
知识点一:Integer a = 9 它的内部就是这样的: Integer i = Integer.valueOf(9);
而valueOf方法内部会去取缓存(默认范围 [-128, 127]) ,不会创建新对象。
知识点二:
Integer和Integer比较的时候,由于直接赋值的话会进行自动的装箱。所以当值在[-128,127]中的时候,由于值缓存在IntegerCache中,那么当赋值在这个区间的时候,不会创建新的Integer对象,而是直接从缓存中获取已经创建好的Integer对象。而当大于这个区间的时候,会直接new Integer。
当Integer和Integer进行==比较的时候,在[-128,127]区间的时候,为true。不在这个区间,则为false 当Integer和Integer进行equals比较的时候,由于Integer的equals方法进行了重写,比较的是内容,所以为trueInteger和new Integer : new Integer会创建对象,存储在堆中。而Integer在[-128,127]中,从缓存中取,否则会new Integer.
所以 Integer和new Integer 进行==比较的话,肯定为false ; Integer和new Integer 进行equals比较的话,肯定为truenew Integer和new Integer进行==比较的时候,肯定为false ; 进行equals比较的时候,肯定为true
原因是new的时候,会在堆中创建对象,分配的地址不同,==比较的是内存地址,所以肯定不同装箱过程是通过调用包装器的valueOf方法实现的
拆箱过程是通过调用包装器的xxxValue方法实现的(xxx表示对应的基本数据类型)总结:Byte、Short、Integer、Long这几个类的valueOf方法实现类似的。所以在[-128,127]区间内,==比较的时候,值总是相等的(指向的是同一对象),在这个区间外是不等的。
而Float和Double则不相等, Boolean的值总是相等的转载地址:http://lrxli.baihongyu.com/