「java比较复杂的问题」java的一些问题

博主:adminadmin 2022-12-15 23:06:06 85

本篇文章给大家谈谈java比较复杂的问题,以及java的一些问题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

关于java中的抽象类的this问题,相当复杂

你应该找本书仔细研究一下类的多态性.

看你提出的问题你说多态你学的差不多,我看差远了....

上面的例子我不给你讲了,我按我自己理解多态的方式按你的例子给你说一下...

一个程序在内存中有四个区..栈...堆...全局数据区...全局代码区....

在这里全局代码区里放着方法名....

因为C继承B,B继承A.所以

new C()的时候要先new B(),还要先new A()

new A()后,全局代码区先划出一块,,这里有:printMe()

new B()后,有getA()和printMe(),但后一个方法把构造A时方法覆盖了.举例子:父类A的printMe()是内衣,子类B的printMe()是外衣..正常情况下你只能看到外衣,看不到内衣的...但是super可以看到,你先别管,要不你好乱了,你只要记住.不用super的时候..你永远是只能看到外衣,看不到内衣的.

同理.

new C()后,里面还是有getA()和printMe(),但这里,getA()是父类,属于内衣,因为它没有外衣进行覆盖,所以还能看到..printMe()就是C的方法了.因为C时就给它加上外衣了..

所以你明白了.无论你声明哪一级的变量(A,B,C),只要是new C()的话..就只能输出"this is C "(先别想super)

this呢?它就指向new C()的这一块全局代码区.....

b=this.在这个问题上..你说B的构造方法不应该属于类C ......对吧...

this就是new C()时生成的全局代码区...这里会没有B的构造吗?构造方法不是方法吗?我在上面没写而已.其实它也在那里面.

this就是指向了使用本this的方法的对象所在的全局代码区...

多读几遍....这句话.

北大青鸟java培训:零基础学习Java应该避免的坑?

零基础学习Java开发技术的坑有哪些,希望下面这些内容对小伙伴们能有所帮助,希望能和大家分享零基础学习Java开发技术可能存在的坑,或者是或多或少都能踩到的一部分坑,下面贵阳计算机学校为大家具体介绍。

一、有自己的计划根据自己的目标制定系统可行的学习计划。

首先,方便您管理好自己的时间和目标,知道每天要做什么,实现什么目标,每个阶段需要学习多长时间,什么时候学会Java开发。

其次,学习计划也是以知识点为主。

Java知识系统比较复杂,而且方向也比较多,所以制定学习计划的另一个目的是帮助你按照方向去收集知识点,贵阳贵阳IT培训认为这样能够防止在学习一些将来不会用到的知识点的时候,能够不用花费太多时间。

二、将坚持当成一种习惯选择学习技术,要放弃很多东西,需要花费维持他人的人际关系,锻炼交际能力的时间来写代码;为了更快地学习新知识,每天都是从公司到家里过着单调的生活,逐渐成为技术宅。

所以,贵阳北大青鸟建议你一定要确定你真的很喜欢Java,真的可以钻研技术再学习。

三、学会首先自己解决问题,然后再请教别人开源是Java最大的特征之一,网上到处都有关于Java学习的报道。

另外,如果有Java的基础的话,可以和身边有相同兴趣的人一起讨论。

这比单独开发项目来提高效率要高效得多。

贵阳贵阳java软件开发认为决不能自己一个人闷头干,也不能一有什么问题马上去问别人。

Java HashMap 复杂度的问题

containsKey的复杂度是O(1),它是直接根据给定的参数key来计算hashcode,看看相关位置上是否有。如果相关位置已被占用,就继续寻找下一个位置。下面是JDK实现containsKey的主要代码:

int hash = hash(k);

int i = indexFor(hash, table.length);

Entry e = table[i];

while (e != null) {

if (e.hash == hash eq(k, e.key))

return true;

e = e.next;

}

containsValue的复杂度是O(n),对于hashmap,value是依赖于key的,所以只能遍历整个集合。以下是JDK实现的主要代码:

Entry[] tab = table;

for (int i = 0; i tab.length ; i++)

for (Entry e = tab[i] ; e != null ; e = e.next)

if (value.equals(e.value))

return true;

return false;

java比较复杂的问题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java的一些问题、java比较复杂的问题的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-15,除非注明,否则均为首码项目网原创文章,转载请注明出处。