文章目录

  • 基本语法
    • 1 编译和解释共存
    • 2 数据类型
      • 2.1 常量池技术
    • 3 String
    • 4 ==和equals()的区别
    • 5 equals()和hashCode()
    • 6 Java的值传递
    • 7 深拷贝和浅拷贝
    • 8 重载和重写
    • 9 序列化

基本语法

1 编译和解释共存

2 数据类型

基本类型 位数 字节 默认值
boolean 1 false
byte 8 1 0
char 16 2 ‘u0000’
short 16 2 0
int 32 4 0
long 64 8 0L
float 32 4 0f
double 64 8 0d

装箱:将基本类型用它们对应的引用类型包装起来

拆箱:将包装类型转换为基本数据类型

2.1 常量池技术

Byte, Short, Integer, Long默认创建了-128127的缓存数据,Character创建了0127的缓存数据

// 使用常量池中的对象,Integer i1 = Integer.valueOf(40);
Integer i1 = 40;
// 创建新的对象
Integer i2 = new Integer(40);
// Integer没有+操作符,会自动拆箱
Integer i3 = new Integer(40);
Integer i4 = new Integer(40);
Integer i5 = new Integer(0);
i3 == i4 + i5  // true

3 String

String:内部使用final关键字修饰字符数组保存字符串,不可变

StringBuilder:可变字符串

StringBuffer:可变字符串,增加了同步锁,线程安全

4 ==和equals()的区别

==:用于比较两个对象地址是否相等,对于基本类型,比较的就是值,对于引用类型,比较的是地址

equals:用于判断两个对象是否相等,继承于Object类的equals方法,在Object类中equals方法使用的就是==,所以一些子类需要覆盖重写equals方法用于比较对象内容

5 equals()和hashCode()

为什么需要计算哈希值:把对象加入HashSet时,会先计算哈希值判断是否存在该对象,如果存在再通过equals方法判断是否相等

为什么重写equals方法时必须重写hashCode方法:如果两个对象相等(equals返回值相同),则哈希值一定是相等的;但如果两个对象哈希值相同,两个对象不一定相等

6 Java的值传递

在Java中只有值传递,只是引用对象传递的值是对象的地址,所以看起来像是引用传递

所以,在函数中改变对象的属性时,改变的是对应地址上的对象的属性,是可以改变的

但,在函数中直接改变对象,改变的是形参指向的地址,所以原对象是无法改变的

7 深拷贝和浅拷贝

  • 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝
  • 深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容

所以对象变量间的赋值会造成两个对象变量指向同一个地址

8 重载和重写

  • 重载:同样的一个方法能够根据输入参数的不同,做出不同的处理
  • 重写:子类继承自父类的相同方法,重新改写,构造方法不可重写

9 序列化

序列化可以将对象转换为流,用于存储在本地,实现Serializable接口

transient关键字修饰的变量不会被持久化

Java基础(一)——基本语法相关推荐

  1. java 基础学习——基本语法(三)

    十五.Java条件语句之 if 生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S .对于这种"需要先判断条件,条件满 ...

  2. Java基础---Markdown基本语法和常用dos命令

    学习第二天 其实是学了好几天,写第二篇文章 先来写一下Markdown的语法吧 一.Markdown 1.1首先需要创建Markdown文件 ​ 上一篇讲了如何安装Markdown文本编辑器,所以我的 ...

  3. JAVA基础教程基本语法、对象和类

    对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是一个模板,它描述一类对象的行为和状态. 方法:方法就是行为,一个类可以 ...

  4. java u003_我在B站学编程 DAY-003 JAVA基础概念和语法

    八进制:0-7组成 例子: 八卦 指令在机器中以机器码格式输出,机器码一次原始输出位数是八的倍数,即以字节长度为最小单位输出. 十六进制:0-9,abcde...组成,0X开头 十六进制可以更紧凑地表 ...

  5. 1. JAVA全栈知识体系--- Java基础

    1. JAVA全栈知识体系- Java基础 文章目录 1. JAVA全栈知识体系--- Java基础 1.1 语法基础 面向对象特性? a = a + b 与 a += b 的区别 3*0.1 == ...

  6. 从java基础技术谈个人发展情景

    java基础技术各阶段 ChatGpt热度上涨... 学校正在积极研究人工智能... 2023开局迎来一个大春天... 广州地区正在进入雨季... 也许是个人梦想的驱使吧,百忙之中准备自己写写文章了, ...

  7. Java基础入门语法和安装

    1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Un ...

  8. Java笔记整理-02.Java基础语法

    1,标识符 由英文字母.数字._(下划线)和$组成,长度不限.其中英文字母包含大写字母(A-Z)和小写字母(a-z),数字包含0到9. 标识符的第一个字符不能是数字(即标识符不能以数字开头). 标识符 ...

  9. Java基础语法(数组)

    第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...

  10. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...

最新文章

  1. python摄像头推流_树莓派使用python-librtmp实现rtmp推流h264的方法
  2. 【机器学习】——《机器学习实战》面试复习
  3. java 与 c#的 中 字符串比较“==”与“equals”的差异
  4. 小程序开发(6)-之自定义导航栏
  5. C语言逻辑运算符 - C语言零基础入门教程
  6. 【Axure原型分享】短视频APP原型模板
  7. 【图神经网络】蛋白质设计proteinsolver跑源码记录
  8. ubuntu du/eog 命令
  9. Java中使用字符流读取UTF-8和写出txt文件 乱码 问题
  10. 浙江推出冷链上“链” 全面掌握冷链食品供应链流向
  11. my love(新贵公子主题歌)铃声 my love(新贵公子主题歌)手机铃...
  12. nvidia驱动,cuda与cudnn的关系
  13. StringTokenizer的用法及示例
  14. python 卡方分布函数_卡方检验2-python代码实现
  15. PRML之Approximate Inference
  16. css样式内联式,外联式,嵌入式
  17. windows:将网络共享文件夹映射为网络硬盘
  18. 北京千锋python培训班
  19. python爬虫爬取拉勾网职业信息
  20. 局域网内抢网速_濮阳联通案例分享:某单位网速慢的处理分享

热门文章

  1. Linux下使用脚本安装和升级pip
  2. 怎样 判断一个网站是不是伪静态
  3. Java for LintCode 验证二叉查找树
  4. Hadoop单机环境搭建整体流程
  5. ASP.NET常用代码汇总
  6. 使用VisualStudio开发php的图文设置方法
  7. lz0-007 读书笔记03
  8. Linux系统调用表(x86_64)
  9. 11 Sping框架--AOP的相关概念及其应用
  10. Android性能优化:布局优化 详细解析(含include、ViewStub、merge讲解 )