- 8种基本数据类型:{ 7种数值类型:{ 4种整数类型:byte(8位,-128到+127),short,int( -2^31到2^31-1),long(末尾用L标识); //注:如果整数类型运算过程中有long类型,结果为long类型;如果不存在long类型,运算过程中无论存不存在int类型,结果都为int类型,(下面的double浮点型,运算过程中存在double结果为d... 8种基本数据类型:{ 7种数值类型:{ 4种整数类型:byte(8位,-128到+127),short,int( -2^31到2^31-1),long(末尾用L标识); //注:如果整数类型运算过程中有long类型,结果为long类型;如果不存在long类型,运算过程中无论存不存在int类型,结果都为int类型,(下面的double浮点型,运算过程中存在double结果为d...
- assigning operator专门为变量指定值或重新指定值-------------------------------------------------------------注意Java支持同时给多个变量赋值,好比支持同时声明多个变量一样,但因影响代码可读性,故也不推荐。加等于:x += 5; 相当于 x = x + 5,但还包括隐式类型转换。public class... assigning operator专门为变量指定值或重新指定值-------------------------------------------------------------注意Java支持同时给多个变量赋值,好比支持同时声明多个变量一样,但因影响代码可读性,故也不推荐。加等于:x += 5; 相当于 x = x + 5,但还包括隐式类型转换。public class...
- 自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。自减: -- ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++:代码 result ++和 ++result,都将使result变量的值加1。唯一的区别是:前置(++result): 表示对result加1之后的结果进行运算,后置... 自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。自减: -- ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++:代码 result ++和 ++result,都将使result变量的值加1。唯一的区别是:前置(++result): 表示对result加1之后的结果进行运算,后置...
- 面向对象编程(OOP)封装性派生性多态性Java 1.2 反射编程Java 1.3 AOPJava 1.4 NIO(Non-Blocking)NIOJava 1.5 泛型/并发编程For Each泛型J.U.C可变参数Iterable<T>CollectionArray[]Formatter枚举AnnotatioJava 1.6 脚本编程(JavaScript)Service LoaderJ... 面向对象编程(OOP)封装性派生性多态性Java 1.2 反射编程Java 1.3 AOPJava 1.4 NIO(Non-Blocking)NIOJava 1.5 泛型/并发编程For Each泛型J.U.C可变参数Iterable<T>CollectionArray[]Formatter枚举AnnotatioJava 1.6 脚本编程(JavaScript)Service LoaderJ...
- 福哥答案2021-01-22:jdk1.7写流程:1.如果table数组为空,table数组初始化,调用inflateTable方法。2.如果key为null,调用putForNullKey()方法,表示插入一个键为null的键值对。否则就是步骤3。3.根据key计算hash,调用hash()方法。4.计算下标,调用indexFor()方法。5.遍历链表,如果找到元素,直接替换旧值。然后调用... 福哥答案2021-01-22:jdk1.7写流程:1.如果table数组为空,table数组初始化,调用inflateTable方法。2.如果key为null,调用putForNullKey()方法,表示插入一个键为null的键值对。否则就是步骤3。3.根据key计算hash,调用hash()方法。4.计算下标,调用indexFor()方法。5.遍历链表,如果找到元素,直接替换旧值。然后调用...
- 1、使用多线程a、继承Thread类第一步:继承Thread类,重写run()方法,run方法中书写需要执行的任务;第二步:创建继承Thread类的实例,执行start()方法,执行线程。b、实现Runable接口第一步:实现Runable接口,实现run()方法,run方法中书写需要执行的任务;第二步:创建实现Runable接口的实例;第三步:创建Thread实例,把实现Runable接口... 1、使用多线程a、继承Thread类第一步:继承Thread类,重写run()方法,run方法中书写需要执行的任务;第二步:创建继承Thread类的实例,执行start()方法,执行线程。b、实现Runable接口第一步:实现Runable接口,实现run()方法,run方法中书写需要执行的任务;第二步:创建实现Runable接口的实例;第三步:创建Thread实例,把实现Runable接口...
- 福哥答案2020-01-21:jdk1.7读流程:1.key是否为空值null,如果为空,直接遍历table[0]链表,寻找key==null键。调用的是getForNullKey()方法。如下:1.1.如果元素个数为0,直接返回null。1.2.遍历table[0]。1.3.遍历到了,返回值;没遍历到,返回null。2.key不为空,获取entry。调用getEntry方法。2.1.如果元... 福哥答案2020-01-21:jdk1.7读流程:1.key是否为空值null,如果为空,直接遍历table[0]链表,寻找key==null键。调用的是getForNullKey()方法。如下:1.1.如果元素个数为0,直接返回null。1.2.遍历table[0]。1.3.遍历到了,返回值;没遍历到,返回null。2.key不为空,获取entry。调用getEntry方法。2.1.如果元...
- 福哥答案2021-01-18:jdk1.7创建流程:三种构造器。1.初始容量不能为负数,默认16。2.初始容量大于最大容量时,初始容量等于最大容量。3.负载因子必须大于0,默认0.75。4.根据初始容量算出容量,容量是2的n次幂。5.设置负载因子loadFactor 。6.设置容量极限threshold。7.设置table数组。8.调用init()空方法。参数为集合的构造器。1.调用有两个参... 福哥答案2021-01-18:jdk1.7创建流程:三种构造器。1.初始容量不能为负数,默认16。2.初始容量大于最大容量时,初始容量等于最大容量。3.负载因子必须大于0,默认0.75。4.根据初始容量算出容量,容量是2的n次幂。5.设置负载因子loadFactor 。6.设置容量极限threshold。7.设置table数组。8.调用init()空方法。参数为集合的构造器。1.调用有两个参...
- 福哥答案2020-01-07:1.7 数组+链表重要字段://HashMap的主干数组,可以看到就是一个Entry数组,初始值为空数组{},主干数组的长度一定是2的次幂,至于为什么这么做,后面会有详细分析。transient Entry<K,V>[] table = (Entry<K,V>[]) EMPTY_TABLE;//实际存储的key-value键值对的个数transient int ... 福哥答案2020-01-07:1.7 数组+链表重要字段://HashMap的主干数组,可以看到就是一个Entry数组,初始值为空数组{},主干数组的长度一定是2的次幂,至于为什么这么做,后面会有详细分析。transient Entry<K,V>[] table = (Entry<K,V>[]) EMPTY_TABLE;//实际存储的key-value键值对的个数transient int ...
- 我们可以看到,之前我们所运行的程序都是在编译时就已经链接了所有所需的类,也就是说程序运行的时候,项目所需要的类都已经加载好了,而反射则不是这样,它允许程序在运行的时候再加载、探知、使用那些在编译时未知的类,它是逆着来的。大概也可以这样理解,就是在程序加载运行的时候,同时再加载、使用一些未知的类,这两个操作是同时运行的。加载这些未知的类时,也可以通过一些方法得到这些类的相关信息类比一个现实生活... 我们可以看到,之前我们所运行的程序都是在编译时就已经链接了所有所需的类,也就是说程序运行的时候,项目所需要的类都已经加载好了,而反射则不是这样,它允许程序在运行的时候再加载、探知、使用那些在编译时未知的类,它是逆着来的。大概也可以这样理解,就是在程序加载运行的时候,同时再加载、使用一些未知的类,这两个操作是同时运行的。加载这些未知的类时,也可以通过一些方法得到这些类的相关信息类比一个现实生活...
- 1、开发桌面应用程序。例如:银行软件、商场结算软件2、开发面向 Internet 的 web 应用程序 。例如:银行金融、网上商城、教育网站等(主要的)。3、嵌入式开发 。例如:移动电话、可视电话、数字机顶盒和汽车导航系统。 1、开发桌面应用程序。例如:银行软件、商场结算软件2、开发面向 Internet 的 web 应用程序 。例如:银行金融、网上商城、教育网站等(主要的)。3、嵌入式开发 。例如:移动电话、可视电话、数字机顶盒和汽车导航系统。
- 詹姆斯·高斯林开发团队于1991 年 6 月启动了 Java 语言的项目。起初詹姆斯·高斯林 给 Java 起的名字叫做 Greentalk。因为他们的团队叫做 Green Team,所以开发语言就叫Greentalk。 后起名叫 Oak,并作为 Green 项目的一部分继续进行开发。Oak(橡树)是力量的象征。所以为了赋予它特别的寓意,起名叫Oak; 再后来,1995 年,Oa... 詹姆斯·高斯林开发团队于1991 年 6 月启动了 Java 语言的项目。起初詹姆斯·高斯林 给 Java 起的名字叫做 Greentalk。因为他们的团队叫做 Green Team,所以开发语言就叫Greentalk。 后起名叫 Oak,并作为 Green 项目的一部分继续进行开发。Oak(橡树)是力量的象征。所以为了赋予它特别的寓意,起名叫Oak; 再后来,1995 年,Oa...
- 正如前面所说,大家最普遍的理解就是当我们遇到某个页面打开很慢的时候,会想到引入缓存,这样页面打开就快了。其实快和慢是相对的,从技术角度来说,缓存之所以快是因为缓存是基于内存去建立的,而内存的读写速度比硬盘快很多倍,所以用内存来代替磁盘作为读写的介质自然能大大提高访问数据的速度。这个过程大致是这样的,通过在内存中存储被访问过的数据供后续访问时使用,以此来达到提速的效果。预读取就是预先读取将要载... 正如前面所说,大家最普遍的理解就是当我们遇到某个页面打开很慢的时候,会想到引入缓存,这样页面打开就快了。其实快和慢是相对的,从技术角度来说,缓存之所以快是因为缓存是基于内存去建立的,而内存的读写速度比硬盘快很多倍,所以用内存来代替磁盘作为读写的介质自然能大大提高访问数据的速度。这个过程大致是这样的,通过在内存中存储被访问过的数据供后续访问时使用,以此来达到提速的效果。预读取就是预先读取将要载...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签