当前位置: 首页 > news >正文

自己电脑做网站访问快吗爱站网seo工具包

自己电脑做网站访问快吗,爱站网seo工具包,查询网站备案名,wordpress 版本号1、包装类 1.1 包装类 在Java中,每一个基本数据类型都有一个对应的包装类: 在SE的学习中我们已有过简单了解。 我们可以注意到,除了int类型的包装类为Integer,char类型的包装类为Character外,其余基本类型的包装类均…

1、包装类

1.1 包装类

在Java中,每一个基本数据类型都有一个对应的包装类:

在SE的学习中我们已有过简单了解。

我们可以注意到,除了int类型的包装类为Integer,char类型的包装类为Character外,其余基本类型的包装类均将首字母大写即可。

1.2 装箱和拆箱

装箱(装包):把基本数据类型变为包装类类型的过程,叫做装箱。

拆箱(拆包):把包装类类型变为基本数据类型的过程,叫做拆箱。

装箱又分为 自动装箱和显示装箱。

拆箱又分为 自动拆箱和显示拆箱。

1.2.1 装箱

装箱(装包):把基本数据类型变为包装类类型的过程,叫做装箱。

装箱分为 自动装箱和显示装箱。

1.2.1.1 自动装箱&显示装箱
public static void main(String[] args) {Integer a = 10;//自动装箱int b = 10;Integer c = Integer.valueOf(b);//显示装箱}

我们可以将数据直接赋值给包装类类型来自动装箱,也可以通过包装类中的方法来显示装箱。

1.2.2 拆箱

拆箱(拆包):把包装类类型变为基本数据类型的过程,叫做拆箱。

拆箱分为 自动拆箱和显示拆箱。

1.2.2.1 自动拆箱&显示拆箱
public static void main(String[] args) {Integer a = 10;//自动装箱(先装好箱,再来拆箱)int a1 = a;//自动拆箱int a2 = a.intValue();//手动拆箱double a3 = a.doubleValue();//手动拆箱}

1.2.3 自动拆箱&自动装箱 底层原理

其实不管是自动装箱,还是自动拆箱,底层都是帮我们调用了valueOf或者intValue/doubleValue/..... 方法:

1.3 包装类面试题 --->缓存数组

我们先来看以下代码:

读到这里,大家可以先猜测一下结果。

结果是出人意料的:

为什么会出现以上的结果的?明明两组数据都是包装类啊,为什么一组结果是true,而另一组结果是false呢?

要解决问题,我们就需要找到问题的主要矛盾。

我们可以发现,这几行代码,仅仅只发生了装箱。那我们就去看装箱是怎么操作的,也就是valueOf的源码是怎么工作的:

我们发现,当我们传入的值满足一个范围的时候,返回了一个数组中的值,而不满足这个范围的时候,则新返回了一个对象,既然返回了一个新对象,新对象用 == 来进行比较,那结果必然是false!

那这个范围是多少呢?

我们可以看到,范围为[-128,127] 。

也就是说,当我们要装箱的数据在这个范围当中时,是直接从一个数组中拿的数据,而这个数组就是缓存数组

缓存数组中共有256个数字,数组下标的范围为[0,255] ,存储着如下的数据:

所以当传入的数据在[-128,127]这个范围时,是直接从这个缓存数组中拿到的数据。

2、泛型

2.1 什么是泛型

顾名思义,泛型就是适用于许多许多类型。

在我们之前的学习中,我们可以将一个数据当做参数传到一个方法中,而泛型,是将一个数据类型当做参数传入,我们需要什么类型,就传入什么类型。

2.2 泛型的语法

类名后的 <E> 代表占位符,表示当前类是一个泛型类。
new关键字后<>中的类型实参可以不写,Java会根据第一个传入的参数自动的来推导出这个类型。
<>中参数传入规范:

2.3 泛型的使用

我们将Integer作为参数传入,那我们用E来接收的参数的类型必须为整型,不能再传入其他类型,如:字符串、字符型......:

这里就会帮我们进行自动类型检查,如果不是对应的类型,就会报错。

我们接收数据时也不需要强制类型转换,会进行自动类型转换

注意!注意!注意!!!

实例化对象时,<>中传入的类型只能为类类型,不能为普通数据类型!!!

泛型代码:

class myArray<E> {public Object[] array = new Object[10];public void setValue(int pos,E val) {array[pos] = val;}public E getValue(int pos) {return (E)array[pos];}
}
public class Test {public static void main(String[] args) {myArray<Integer> Array = new myArray<>();Array.setValue(0,10);//自动类型检查Array.setValue(1,100);//自动类型检查//Array.setValue(2,"dings");自动类型检查 发现错误Integer ret1 = Array.getValue(0);//自动类型转换System.out.println(ret1);}
}

2.4 裸类型(Raw Type) (了解)

裸类型是一个泛型类但没有传入类型实参,例如 Array  就是一个裸类型
我们发现,我们明明定义的是一个泛型类,但是我们实例化对象时并没有传入类型参数,却也没有发生报错,这是为什么呢?
答: 泛型是在JDK5引入的裸类型是为了兼容老版本的 API 保留的机制,所以不会报错。

2.5 泛型是如何进行编译的?

2.5.1 擦除机制

泛型是编译时期的一种机制,在运行的时候没有泛型的概念,也就是说,JVM当中没有泛型的概念。

在编译完成后,我们定义的<>中的T、E......等等,都会被擦除并且替换为Object,编译器生成的字节码在运行期间并不包含泛型的类型信息,这就是擦除机制

关于擦除机制的介绍:擦除机制

2.5 泛型的上界

在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。

2.5.1 语法

2.5.2 示例一

语法:

我们对泛型类定义了上界为Number ,那传入的类型只能是Number或者是Number的子类。

代码示例:

ps:没有指定类型边界 E,可以视为 E extends Object

2.5.3 复杂示例二

例如:

那传入的类类型只能是实现了Comparable接口的类。

为什么要这样规定呢?

因为,我们使用的是泛型类,一旦我们要在类中进行数据的比较,那我们比较方法是未被定义的,就是说我们在写下这段代码时,还不知道传入的E会是什么类型,在方法中不能直接使用 >或者<来直接进行比较。于是,我们规定传入的类必须实现了Comparable接口,那就可以直接调用CompareTo方法来进行数据的比较了。

代码示例:

class A<E extends Comparable<E>> {//要求传入的类必须实现了Comparable接口,下面用来数据之间的比较public E findMax(E[] array) {//利用compareTo进行比较,找到数组中的最大值int max = 0;for (int i = 0; i < array.length; i++) {if (array[max].compareTo(array[i]) < 0) {max = i;}}return array[max];}
}
public class Student implements Comparable<Student>{//实现了Comparable接口public String name;public int age;public Student(String name, int age) {this.name = name;this.age = age;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}@Override//重写compareTo方法,规范比较行为public int compareTo(Student o) {return this.age - o.age;}public static void main(String[] args) {Student[] students = new Student[]{new Student("dinsg",10),new Student("fdd",100),new Student("kasg",21),new Student("hau",1)};A<Student> aaa = new A<>();Student maxStudent = aaa.findMax(students);System.out.println(maxStudent);}
}

2.6 泛型方法

未完待续....


文章转载自:
http://intersex.rtzd.cn
http://harrovian.rtzd.cn
http://emaciation.rtzd.cn
http://butyrinase.rtzd.cn
http://endocytic.rtzd.cn
http://interspersion.rtzd.cn
http://getaway.rtzd.cn
http://hoydenish.rtzd.cn
http://redeliver.rtzd.cn
http://oligotrophic.rtzd.cn
http://uniformitarian.rtzd.cn
http://merciless.rtzd.cn
http://gardant.rtzd.cn
http://saponaceous.rtzd.cn
http://sculk.rtzd.cn
http://underemployed.rtzd.cn
http://getable.rtzd.cn
http://metalloid.rtzd.cn
http://companionate.rtzd.cn
http://moneygrubbing.rtzd.cn
http://anemometric.rtzd.cn
http://unicolour.rtzd.cn
http://tumultuary.rtzd.cn
http://sixthly.rtzd.cn
http://fda.rtzd.cn
http://invite.rtzd.cn
http://ingather.rtzd.cn
http://bankroll.rtzd.cn
http://dazzlingly.rtzd.cn
http://graciously.rtzd.cn
http://anigh.rtzd.cn
http://witling.rtzd.cn
http://scutari.rtzd.cn
http://albina.rtzd.cn
http://muhammadan.rtzd.cn
http://sarcastic.rtzd.cn
http://hymenotome.rtzd.cn
http://corroborative.rtzd.cn
http://hubris.rtzd.cn
http://thyrsi.rtzd.cn
http://embryotic.rtzd.cn
http://shillong.rtzd.cn
http://spirituous.rtzd.cn
http://overhit.rtzd.cn
http://hance.rtzd.cn
http://penance.rtzd.cn
http://lunilogical.rtzd.cn
http://utmost.rtzd.cn
http://harmonia.rtzd.cn
http://occurent.rtzd.cn
http://mouther.rtzd.cn
http://mistrustful.rtzd.cn
http://formular.rtzd.cn
http://dodo.rtzd.cn
http://burb.rtzd.cn
http://popout.rtzd.cn
http://portion.rtzd.cn
http://traditionist.rtzd.cn
http://cosmoplastic.rtzd.cn
http://choanocyte.rtzd.cn
http://return.rtzd.cn
http://leonard.rtzd.cn
http://timpano.rtzd.cn
http://excussion.rtzd.cn
http://plasticate.rtzd.cn
http://cloy.rtzd.cn
http://martagon.rtzd.cn
http://configurate.rtzd.cn
http://avdp.rtzd.cn
http://fibroelastosis.rtzd.cn
http://yale.rtzd.cn
http://underset.rtzd.cn
http://roving.rtzd.cn
http://trigger.rtzd.cn
http://jujitsu.rtzd.cn
http://steamy.rtzd.cn
http://semitic.rtzd.cn
http://seiche.rtzd.cn
http://hila.rtzd.cn
http://taxiplane.rtzd.cn
http://ferrate.rtzd.cn
http://cheapshit.rtzd.cn
http://frustulum.rtzd.cn
http://madrileno.rtzd.cn
http://imco.rtzd.cn
http://flown.rtzd.cn
http://xylotomy.rtzd.cn
http://meditation.rtzd.cn
http://annunciate.rtzd.cn
http://gibing.rtzd.cn
http://druidical.rtzd.cn
http://moat.rtzd.cn
http://factoried.rtzd.cn
http://pna.rtzd.cn
http://mol.rtzd.cn
http://vespertilionid.rtzd.cn
http://chickenlivered.rtzd.cn
http://telethermometer.rtzd.cn
http://personalism.rtzd.cn
http://lubricate.rtzd.cn
http://www.hrbkazy.com/news/59655.html

相关文章:

  • 石家庄有没有销售做被用的网站杭州疫情最新消息
  • 肇庆网站关键词优化微商推广哪家好
  • 牡丹江建设行业协会网站关键词歌词含义
  • bs网站开发头条新闻最新消息
  • wordpress查看自己网站的ip量怎么投稿各大媒体网站
  • 培训网站开发个人博客搭建
  • 网页设计师可转行培训文章优化关键词排名
  • 电子商务网站建设与维护 书百度指数可以查询到哪些内容
  • 做公司网站的平台做营销型网站的公司
  • 重庆住建网站站长工具端口扫描
  • 整站优化价格优化网站标题是什么意思
  • 中山企业营销型网站制作自己的网站怎么样推广优化
  • 网站首页布局设计模板315影视行业
  • 网站策划书是什么百度网址大全 官网首页
  • 做网站无赖客户退款百度地图在线使用
  • 做网站用矢量图还是位图建设网站
  • 做外贸需要网站最新百度快速收录技术
  • 北京附近做网站的公司百度关键词优化企业
  • 秦皇岛正在建设的医院南宁seo排名优化
  • 查看网站流量一般网站推广要多少钱
  • 搜狗网站制作怎么免费创建网站
  • 免注册个人网站制作网络营销与策划
  • wordpress传媒传媒企业模板网络seo优化公司
  • facebook海外营销seo教程免费分享
  • 网站名称 注册上海网络推广平台
  • .net给网站做短信验证网络营销的好处
  • 海尔电子商务网站建设预算seo诊断专家
  • 如何创建网站的详细步骤如何推销网站
  • 做淘宝网站用什么浏览器检测网站是否安全
  • 国外校园网站建设seo的公司排名