Java基础(一)——基本语法
文章目录
- 基本语法
- 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基础(一)——基本语法相关推荐
- java 基础学习——基本语法(三)
十五.Java条件语句之 if 生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S .对于这种"需要先判断条件,条件满 ...
- Java基础---Markdown基本语法和常用dos命令
学习第二天 其实是学了好几天,写第二篇文章 先来写一下Markdown的语法吧 一.Markdown 1.1首先需要创建Markdown文件 上一篇讲了如何安装Markdown文本编辑器,所以我的 ...
- JAVA基础教程基本语法、对象和类
对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是一个模板,它描述一类对象的行为和状态. 方法:方法就是行为,一个类可以 ...
- java u003_我在B站学编程 DAY-003 JAVA基础概念和语法
八进制:0-7组成 例子: 八卦 指令在机器中以机器码格式输出,机器码一次原始输出位数是八的倍数,即以字节长度为最小单位输出. 十六进制:0-9,abcde...组成,0X开头 十六进制可以更紧凑地表 ...
- 1. JAVA全栈知识体系--- Java基础
1. JAVA全栈知识体系- Java基础 文章目录 1. JAVA全栈知识体系--- Java基础 1.1 语法基础 面向对象特性? a = a + b 与 a += b 的区别 3*0.1 == ...
- 从java基础技术谈个人发展情景
java基础技术各阶段 ChatGpt热度上涨... 学校正在积极研究人工智能... 2023开局迎来一个大春天... 广州地区正在进入雨季... 也许是个人梦想的驱使吧,百忙之中准备自己写写文章了, ...
- Java基础入门语法和安装
1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Un ...
- Java笔记整理-02.Java基础语法
1,标识符 由英文字母.数字._(下划线)和$组成,长度不限.其中英文字母包含大写字母(A-Z)和小写字母(a-z),数字包含0到9. 标识符的第一个字符不能是数字(即标识符不能以数字开头). 标识符 ...
- Java基础语法(数组)
第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...
- 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法
第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...
最新文章
- python摄像头推流_树莓派使用python-librtmp实现rtmp推流h264的方法
- 【机器学习】——《机器学习实战》面试复习
- java 与 c#的 中 字符串比较“==”与“equals”的差异
- 小程序开发(6)-之自定义导航栏
- C语言逻辑运算符 - C语言零基础入门教程
- 【Axure原型分享】短视频APP原型模板
- 【图神经网络】蛋白质设计proteinsolver跑源码记录
- ubuntu du/eog 命令
- Java中使用字符流读取UTF-8和写出txt文件 乱码 问题
- 浙江推出冷链上“链” 全面掌握冷链食品供应链流向
- my love(新贵公子主题歌)铃声 my love(新贵公子主题歌)手机铃...
- nvidia驱动,cuda与cudnn的关系
- StringTokenizer的用法及示例
- python 卡方分布函数_卡方检验2-python代码实现
- PRML之Approximate Inference
- css样式内联式,外联式,嵌入式
- windows:将网络共享文件夹映射为网络硬盘
- 北京千锋python培训班
- python爬虫爬取拉勾网职业信息
- 局域网内抢网速_濮阳联通案例分享:某单位网速慢的处理分享