来自java基础问题1__1  原文链接https://blog.csdn.net/weixin_36279318/article/details/80555752

接上链接中的第11个问题 

1 简述自动装箱和自动拆箱

byte变Byte,short变Short,int变Integer,float变Float,double变Double,long变Long,char变Character,bool变Boolean

简单一下说,自动装箱,就是自动将代码中的基本类型转为包装器类型;拆箱就是,自动将包装器类型转换为基本类型

http://www.cnblogs.com/dolphin0520/p/3780005.html  高质量参考

外记    1  对于直接相加字符串,效率很高,因为在编译器便确定了它的值。

      2  当 "=="运算符的两个操作数都是 包装器类型的引用,则是比较指向的是否是同一个对象,而如果其中有一个操作数是表达式(即包含算术运算)则比较的是数值(即会触发自动拆箱的过程)。另外,对于包装器类型,equals方法并不会进行类型转换。

2.简述Java中实现多态的机制是什么?

https://www.cnblogs.com/chenssy/p/3372798.html  参考这篇,我下面瞎扯了下,不想看这个了,等会再看

1.重载(overloading):是一个类中多态的表现,比如一个类中定义多个同名的方法,但它们具有不同的参数或不同参数类型都称之为重载。  从古到进很多东西,说他们换汤不换药  这个体现了overloading重载,比如吃饭的实现方式,烧木头,稻草,碳,煤,煤气,天然气,管球你怎么烧,就是烧的燃料换了又换,对吧。so 一次次的重载呗。咋记下来呢。,,

emm,重新把东西托运一遍,目的地不变,但是咱们使用的工具变了。对吧,重载。 参数个数不同,参数类型不同,这个。上面那样想有点,,。,,。。上面x掉。  注意一个类定义多个,,这个放在人这个类,或者烧火这个类里面也行,方法全是烧火,参数就是烧啥,参数类型或则个数要不同哦。对这样也行。

这样理解, 重载就是做一件事儿有很多不同的方法,跳跳大陆同罗马对吧,在一个类中所有走向罗马的方法,咱们都叫他通罗马,那实现不同,里面的参数类型,个数啊啥的不同对吧,那这个时候如果说子类实现父类,子类中写了一个新的方式通罗马,这个时候是方法的创新对吧,子类创新的,父类不能调用他,在子类中我们可以认为这个是新方法 ,放在两个类,没有父类哪有子类,我们称这种创建叫重载,这种家伙就提现了多态。   瞎扯完毕,给自己101分哈哈,满分100.

其实多态吧,我觉得主要就是体现在重载上,重写只是表现方式的一种。重载体现了生物的创新,多样性,由此引出程序的多态。  也可以这样说,重载体现了创新,重写体现了多样,一个是开创,一个是传承。
       2.重写(overriding):子类定义一个方法和父类的方法名称参数都相同,那么父类的方法被重写。

这个家伙列,重写就是抄撒,程序的重写很一丝不苟,人生人吗,子女像父母,这里面体现了重写,生物繁殖中底层具体的东西的,重组,抄,抄的不是百分百一样,成长过程中还会受到环境影响。我靠,程序简直太牛逼了。因为牛逼大啊。
       3.参考:理解java的三大特性之多态

瞎扯: 程序运行时的多态就和生孩子一样,我们都知道女男弄一哈就就可以生孩子,但是生的男的还是女呢,这一个过程只有在实践中彩票过后,才知道生的男娃子女娃子。   多态引申出来一句话:实践出真知哈哈哈。我的前人太有才了。

继续瞎扯:为啥现在人类在地球上看似一家独大呢,打个比方明白了,人比啥动物的特性都比不过,各种动物的封装特性都不同,但是,人这个东西有什么特点,综合性的扩展性,科学,艺术,生活技能,宗教,tm的扩展性强导致啥呢,适应性强。设计一个程序,java为啥经久不衰,跟人一样吗,对吧,小的菜鸡瞎扯,各位看官别见笑哈哈。由此可见,程序的高扩展,高适应,高稳定,很重要。

3.简述Java反射机制及其作用?

Reflection:是Java被视为一种动态语言的一个关键性质,这个机制允许程序在运行时通过Reflection API获取任意一个已知名称Class的内部信息。并可在运行时改变字段内容,唤起methods

歇会,。,

jixu 

反射机制详解 https://www.cnblogs.com/bojuetech/p/5896551.html

Java API:Class类中的方法 https://docs.oracle.com/javase/7/docs/api/

 

4 简述ArrayList和LinkedList的区别?

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
       2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
       3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。     

3是不一定的,因为linkedlist增删数据的时候要先找到位置,这个是它比较耗时的操作,而这个时候arraylist主要耗时则是在arraycopy上,经过各个博主的检验,数据量小的时候差不多,数据多的时候,数据的前1/10增删数据的时候linkedlist快,到后面是它越来越慢,到屁股可能又快了起来。一般就推荐使用arraylist。其他的双向什么的,看链接,没懂那些特性的使用场景。

 

 4.参考:ArrayList和LinkedList的区别 https://www.cnblogs.com/shanheyongmu/p/6439202.html

5.简述HashMap的工作原理及HashMap和Hashtable的区别?

https://www.cnblogs.com/beatIteWeNerverGiveUp/p/5709841.html 答案看这个把。。

HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。 HashMap在每个链表节点中储存键值对对象。   这个很垃圾啦,。,还是把源码看明白好。

HashMap实现原理及源码分析http://www.cnblogs.com/chengxiao/p/6059914.html#t4 这个很好  JDK7

https://www.cnblogs.com/skywang12345/p/3310835.htmlJava 集合系列10之 HashMap详细介绍(源码解析)和使用示例    基于JDK1.6.0_45

https://monkeysayhi.github.io/2017/08/26/HashMap%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86/  HashMap实现原理  还是比较难啊 基于JDK1.8.0_102

 

6 简述java中super()和this()、super和this的区别?

super():调用父类无形参的构造方法;

super(形参):调用父类中某个带形参的构造方法;

this(形参):调用本类中另一种形式的构造方法

注意:放在方法的首行;
   2.super和this的区别:

super.父类的成员变量;

super.父类的方法;

super:当子类中的成员变量、方法和父类的相同时,实现调用父类的成员变量和方法;

this:代表当前的对象;

使用的地方:若函数的形参和成员变量同名时,需要用this.成员变量名


转自 :https://blog.csdn.net/weixin_36279318/article/details/80555752

 

java中YYYY与yyyy的区别

https://blog.csdn.net/qq_31949853/article/details/85605334