学习过程中总结的java基础知识(一)!欢迎指正!

作为一个刚入门的java程序猿,这些知识你真正理解了多少呢?

比如:JDK、JRE、JVM三者的关系?8种基本类型?访问权限修饰词作用范围?Java内存分为哪几个区域?等等好多基础知识的呦~
如果还不太清楚的话,那让小姐姐告诉你吧!
如果你是一个有很多年工作经验的老司机,那来一起回顾下!欢迎指正!
本人是一个刚学会做项目的小姐姐,在学习java的过程中,还有很多很多不理解的地方,有一颗要做好不要命的心,把自己学到的东西拿出来分享,大家一起努力变大牛呀~!

  1. JDK、JRE、JVM三者的关系
    ①JVM:
    java虚拟机,加载.class并运行.class
    ②JRE:
    java运行环境,除了包含JVM以外还包含运行java程序所必须的环境
    JRE=JVM+java系统类库
    ③JDK:
    java开发工具包,除了包含JRE以外还包含开发java程序所必须的命令工具
    JDK=JRE+编译、运行等命令工具
    【说明】:
    运行java程序的最小环境为JRE
    开发java程序的最小环境为JDK

  2. 8种基本类型
    ①byte(字节型,1个字节)
    ②short(短整型,2个字节)
    ③int(整型,4个字节)
    ④long(长整型,8个字节)
    ⑤float(单精度浮点数,4个字节)
    ⑥double(双精度浮点数,8个字节)
    ⑦boolean(布尔类型,1个字节)
    ⑧char(字符类型2个字节)

  3. 访问权限修饰词作用范围
    public protected 默认(default) private
    ①public:公开的,任何类
    ②private:私有的,本类
    ③protected:受保护的,本类、子类、同包类
    ④默认的(default):什么也不写,本类、同包类

  4. Java内存分为哪几个区域;

    1)堆:
    ①存储new出来的对象(包括实例变量)
    ②成员变量的生命周期:创建对象时存在堆中,对象被回收时一并消失
    ③垃圾:没有任何引用指向的对象垃圾回收器不定时到内存中清扫垃圾,回收过程是透明的,不一定发现垃圾就立刻回收,调用System.gc()可以建议JVM尽快调度GC来回收
    ④内存泄漏:不再使用的内存没有被及时的回收
    建议:不再使用的对象需及时将引用设置为null
    2)栈:
    ①存储正在调用中的方法中的所有局部变量(包括参数)
    ②调用方法时,会在栈中为该方法分配一块对应的栈帧,栈帧中存储方法中所有局部变量(包括参数)方法调用完后,栈帧被清除,局部变量一并失效
    ③局部变量的生命周期:调用方法时存在栈中,方法完之后与栈帧一并消失
    3)方法区:
    ①存储.class字节码文件(包括方法)
    ②方法只有一份,能过this来区分具体的调用对象

  5. 重写和重载的区别;
    1)重写(Override):
    ①发生在父子类中,方法名相同,参数列表相同,方法体不同
    ②重写遵循"运行期"绑定,看对象的类型来调用方法
    【总结】:遵从“两同两小一大”原则:
    ⑴两同:方法名相同,参数列表相同
    ⑵两小:返回值类型小于等于父类方法返回值类型(基本类型必须等于,void必须一致),抛出的异常小于等于父类方法抛出的异常
    ⑶一大:访问权限要大于父类方法访问权限
    2)重载(Overload):
    ①发生在一个类中,方法名相同,参数列表不同,方法体不同
    ②重载遵循"编译期"绑定,看引用的类型来绑定方法

  6. 成员变量和局部变量的区别:
    ①位置不一样
    成员:类中方法外
    局部:方法内或者方法声明上
    ②默认值不一样
    成员:有默认值
    局部:没有
    ③作用域不一样
    成员:整个类
    局部:方法内中的大括号内
    ④内存中位置
    成员:堆
    局部:栈
    ⑤声明周期
    成员:比较长–>随之对象的创建而诞生,随之对象消失而消失
    局部:方法调用的时候产生,方法调用结束而消失。

  7. 使用对象的过程:
    ①导包
    告诉这个类在何处(如果使用的类和被使用的在同一个包下的话,这一句可以省略)不然需要写出导包语句
    比如:import 包名.类
    ②创建对象
    格式: 类名 对象名(存的是地址值) = new 类名();
    【解释】:
    ⑴new:new出来的是地址值,在堆内存中,参照本文第4条
    ⑵类名:构造函数:( 包括有参构造、无参构造 )
    ⑶构造方法作用: 用来创建对象,专门被new调用,用来创建对象的,给对象在堆内存中开辟空间,给成员变量进行初始化!!! 用new来创建时,其实就是在调用构造方法。 当我们创建对象时利用满参构造方法可以直接给成员变量进行赋值!(有参构造可以直接给成员变量赋值、无参构造可以通过setter和getter方法给成员变量进行赋值!!!)
    【特点】:
    ❶构造方法名和类名必须完全一样
    ❷构造方法没有返回值类型,连void都不能有
    ❸构造方法没有返回值,不能有return语句!!!
    ❹如果你一个构造都没有提供,系统会默认提供一个无参构造方法。
    ❺如果一旦提供了至少一个构造,系统就不会提供那个无参构造了。
    ❻构造函数可以给我们成员变量进行赋值,但是只能用一次,如果要修改对象的属性,不能再new了,还需要setter和getter方法的支持。
    ❼有参构造和无参构造的方法名一样、参数列表不一样,是一种重载现象。
    ③使用对象
    ⑴使用成员变量:
    对象名.成员变量 获取成员变量
    对象名.成员变量 = 值 即为给对象的成员变量赋值
    【注意】: 成员变量有默认值,原因是在成员变量在堆里!!!
    ⑵使用成员方法
    对象名.成员方法名 ( 参数 )
    【注意】:对象作为方法的参数或者返回值时,传的参数是地址值,返回的返回值也是地址值!!!!!!

  8. 匿名对象:
    没有变量名的对象, new 类名(参数列表),创建匿名对象直接调用方法,没有变量名,一个匿名对象只能使用一次,匿名对象是引用类型数据可以作为方法的参数和返回值。(操作地址值!!!)

  9. 数据类型转换
    ①隐式自动类型转换: 小数据转大数据。
    ②显示强制类型转换: 大数据转小数据–>小数据类型
    小数据变量名 = (小数据类型)大数据类型
    【注意】 :强制类型转换会导致数据溢出,精确度下降。
    变量byte和变量short和变量char,如果说右边全部都是常量的话,他会帮我们自动判断在不在左边的范围之内,如果在的话,自动帮我们做了强制类型转化。
    byte、short、char 在参与算术运算时会首先提升为 int类型再计算。

  10. 跳出语句
    ①break :
    使用场景:终止switch或者循环 在选择结构switch语句中 在循环语句中 离开使用场景的存在是没有意义的
    ②continue :
    使用场景:结束本次循环,继续下一次的循环

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值