由浅入深Java笔记

Java

语法

  • 在Java中规定,多行注释可以嵌套单行注释,但是不能嵌套多行注释

编译型语言和解释型语言

  • 编译型语言是 一次性将源码编译成计算机可识别的二进制文件
  • 解释型语言是 一句一句翻译源码,java就是这样,预编译成class文件后,在一句句转成二进制文件,其中虚拟机起到解释器的作用

jdk版本

  • 接口只能定义抽象方法,既Java中所有的非抽象方法都必须在类内定义
  • 1.8接口可以定义default方法和static方法
  • 1.9接口中可以定义私有方法。

位运算

在这里插入图片描述

java包

  1. java.awt:提供了绘图和图像类

  2. java.lang:java的语言包,是核心包
    默认导入到用户程序,包中有object类,数据类型包装类,数学类,字符串类,系统和运行时类,操作类,线程类,错误和异常处理类,过程类。

  3. java.io:包含提供多种输出输入功能的类。

  4. java.net: 包含执行与网络有关的类。

  5. java.util:集合类、时间处理模式、日期时间工具等各类常用工具包。

Integer和int

Integer int
包装类 基本数据类型
初始值null 初始值0
-128~127之外新建对象,存放在堆中 存在常量池
使用前需要实例化 直接使用
  • 为什么需要包装类?
    “包装类解决了一些基本数据类型解决不了的问题”
  1. 集合无法存放基本数据类型
  2. 包装类可通过parse把基本数据类型转换成包装类
  3. 函数需要传入Object类型参数,基本数据类型不行
    “Object类型可以接收所有引用类型,包装类是引用,基本数据类型不是”
  • 包装类作用:
    将基本数据类型封装成类
  • Integer.valueOf() 封装的Integer对象
    Integer.parseInt() 原子类型int
    作用:返回指定对象原始值
Number类
  • float 4字节 48 float 类型的数值有一个后缀 F(例如:3.14F)
    double 8字节 88 没有后缀 F 的浮点数值(例如:3.14)默认为 double
  • 低数据类型可以直接赋值给高数据类型,反之,高数据类型转换为低数据类型必须强转,即提前制定数据类型,例 int a = (int) 5.0F
  • Integer内部实现Comparable接口,可通过compareTo实现Integer对象的比较
Integer i1=new Integer(100);
Integer i2=new Integer(200);
Sop(i1.compareTo(i2));
String比较

在这里插入图片描述

  • String 和 int 相加
    在这里插入图片描述

  • t和s不是一个类型的,不能比较

  • s和t都指向字符串池的相同内容,地址相等,true

数组

  • 三种创建形式:
    int[] arr=new int[3];
    int[] arr=new int[]{1,2,3};
    int[] arr={1,2,3};
    在这里插入图片描述- 二维数组第一个中括号必须有值

Object中的方法

  • getClass 返回实体的class对象,获得这个类的元数据
  • parseInt是转为基础数据,valueOf是包装类,toString是转为字符串
//将字符串转为int类型
String a="123"
int i=Integer.parseInt(a);
//将字符串转为Integer
Integer it=Integer.valueOf(a);
  • hashCode 为不同对象返回不同整数
  • finalize 垃圾回收之前,通过重写方法来重置系统资源,执行清理活动并且最大程度的减少内存泄露。
  • wait 调用线程放弃锁并且进入睡眠状态
  • notify,notifyAll 唤醒线程

super和this

  • super实现对父类的引用
  • this 指向自己的引用
    在这里插入图片描述

构造器

在这里插入图片描述

修饰符有哪些

  • 访问控制修饰符
    在这里插入图片描述

  • synchornized可以应用于这四个访问符
    在这里插入图片描述在这里插入图片描述

  • private修饰的方法可以用反射访问,那它的意义何在?
    private不是为安全性设计的,而是对一个类的封装,改变类中的private属性不影响使用;而反射技术实现了一些开发工具和框架的服务
    在这里插入图片描述

  • 非访问修饰符号
    在这里插入图片描述

  • private和final
    在这里插入图片描述

2.equals和==

equals ==
对象值是否相同 “基础”比较数值,引用比较“地址”
  • 两个对象classa和classb在堆内存,he在字符串常量池,共三个
    在这里插入图片描述
    结果为false,无论是equals还是==,因为equals没有重写,相当于 ==使用,classa和classb不在同一块内存地址

instanceof

在这里插入图片描述
在这里插入图片描述

3.构造方法和成员方法

构造方法 成员方法
初始化,创对象 实现特定功能
类中只能有一个 类中可以有多个
方法名同类名 无此要求
在这里插入图片描述在这里插入图片描述

4. static和final

static final
静态的,全局的 不可变
类中只能有一个 类不可继承,方法不可重写,常量不能变
修饰变量,方法,类,代码块 修饰变量,方法,类
在类加载时执行一次
修饰的变量,方法可以被修改 修饰的变量为常量,需要被赋值,且只能赋一次
修饰的方法可以被继承,不能被重写 能重载,不能被重写

若子类中出现和父类静态方法同名,同参数列表,同返回类型的方法,不是继承,是子类将该同名方法进行了隐藏

  • static修饰的方法/变量 具有全类共有的作用,通过 类名. 调用

  • final修饰引用变量时,保存的是引用地址,即一直引用这个对象,而对象的值可以改变,不能在普通方法中为final变量赋值
    在这里插入图片描述

  • final修饰的变量存储位置:成员变量和静态变量在常量池子,局部变量在栈中在这里插入图片描述

  • final修饰的变量会找到constantValue属性,但JVM往往会忽略,final修饰的实例变量,会在实例创建时赋初值

  • static会在类加载的准备阶段赋初值,初始化阶段赋值,static final修饰的String和基本数据类型 会在准备阶段就赋值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值