JAVASE----基础入门知识点 ------->上<-------

本文详细讲解了Java编程中的关键概念,如程序在内存中的运行、八种基本数据类型、堆栈特性、变量命名规则、操作符使用、equals和==的区别、逻辑运算、常量存储、类和接口、异常处理以及ArrayList和HashMap的底层实现。
摘要由CSDN通过智能技术生成

1.所有程序都运行在内存

2.八种基本数据类型:byte,short,int,long,float,double,char,boolean

3.堆是先进 先出,栈是后进先出

4.变量规范:变量名见名之意,驼峰命名法(首字母小写其余首字母大写),一般常量在定义时使用下划线

5.等于号左边会根据右边的对象创建相应对象的类型空间,量表示左边的空间

6.++,--,+=,-+,/,%,操作加一使用++,操作加1以上使用+=

7.引用数据类型操作一般使用的都是方法

  1. equals和==的区别:

==是用来判断基本数据类型是否相等的,equals()分为object的equals(),和string的equals(),object里面的equals()方法里面就是一个==号,而string里面的equals是重写object之后 的equals()判断两个字符串的内容是否相同,方法底层是利用循环比较两个数组的每一个字符,都相同返回true,有一个不相同返回false;

9.&& || & |

一个的按位,两个的是逻辑,一般使用的都是逻辑

10.常量存储在静态常量池,恒等使用switch,><使用ifelse进行比较

11.循环执行完后,循环内的变量会被回收,数组长度是固定的,通过下标拿东西

12.类里面写的变量叫做属性,把相同功能的方法放在同一个类里

13.一个方法放一个功能,避免代码的耦合,方法是第一次解耦合,类是第二次解耦合

14.类和类之间想要共享需要创建对象,把属性和方法放到一个类里面,使用getter和setter进行访问叫做封装

15.包名+类名=完全限定名

16.抽象类有抽象方法,抽象方法必须在抽象类中,抽象类不能创建对象,抽象类中没有构造方法 继承抽象父类的子类必须重写父类的所有抽象方法

17.接口中所有的方法都叫全局抽象方法,接口中的所有变量叫全局静态常量

实现接口的类需要重写接口的所有抽象方法,抽象类一般规定内部(自己使用)的继承,接口一般规定外部(提供给前端)

父类引用存放一个子类对象,前提有继承或者实现关系

18.异常五个关键字

try catch finally throw throws

try里面写的是正常代码,当代码执行出现异常会被catch捕获,finally无论代码是否异常都会执行,throw是自定义异常,throws是抛出异常,让调用方法的地方去解决异常,(return情况下,finally也会继续执行,遇到return会先挂起,执行完finally里面的代码再去执行return,system.exit(0)不会执行finally)

  1. object上帝类,字符串是不可修改的,发生修改会创建一个新的字符串,为了解决这个问题,使用stringbuffer去操作字符串,最后再转换成tostring

每个基本数据类都有对应的包装类

  1. arraylist和hashmap的底层使用原理

arrayList是一种线性数据结构,它的底层是用数组实现的,相当于动态数组。与Java中的数组相比,它的容量能动态增长。 当创建一个数组的时候,就必须确定它的大小,系统会在内存中开辟一块连续的空间,用来保存数组,因此数组容量固定且无法动态改变。ArrayList在保留数组可以快速查找的优势的基础上,弥补了数组在创建后,要往数组添加元素的弊端快速查找:在物理内存上采用顺序存储结构,因此可根据索引快速的查找素。

arraylist的自动扩容内存,. 容量动态增长: 当数组容量不够用时,创建一个比原数组容量大的新数组,将数组中的元素“搬”到新数组,再将新的元素也放入新数组,最后将新数组赋给原数组即可。

HashMap底层是哈希表结构,结合数组结构和链表结构的优点,从而实现了查询和修改效率高,插入和删除效率也高的一种数据结构,1)map.put(k,v)实现原理

put()首先把键值对封装到node对象当中,利用键的hashcode()得出hash值,通过哈希算法将hash值转成对应的数组下标,下标位置如果没有元素,就把这个键值对放到这个位置上,如果下标位置上有链表,拿着键链表上的每一个节点进行equals比较,比较完一轮返回的都是false的话,会被添加到链表的末尾,如果有一个equals返回了true,节点的value会被覆盖掉.

get()先调用k的hashCode()方法得出哈希值,并通过哈希算法转换成数组的下标,通过数组鼠标定义到一个位置上,如果这个位置上什么都没有返回null,如果有,则拿着对应的键跟链表上的节点进行equals,如果所有equals都返回false,则get方法返回null;,如果其中一个节点的k和参数k比较返回true,get方法会返回这个要找的value;

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值