Java基础(0)

JDK简单介绍

JDK(Java开发工具包)包括:

  1. JVM JavaVirtualMachine
  2. 核心类库
  3. 开发工具(java,javac等)

其中,JVM与核心类库统称为JRE
jdk LTS版本:8/11/17;

javac命令 编译,生成字节码文件(class文件/ 其中不包含java文件里的注释)
java命令 运行class文件;
也可以通过java命令直接运行.java文件,期间会生成一个临时class文件(文件中不会保存);

path环境变量:用于配置程序路径,方便再命令行窗口的任意目录启动程序;命令行窗口启动程序,现在当前目录查找,其次在path系统变量中查找。
JAVA_HOME环境变量:告诉OS JDK的安装位置。
IDE: intergrated development environment

Java跨平台工作原理:一次编译,处处可用 → class文件可在不同系统中的JVM上运行

数据类型

数据最小单位:字节(byte)

基本数据类型
数据类型字节数
整型byte1
short2
int4
long8
浮点型float4
double8
字符型char2
布尔型boolean1

注意:单引号’'只能存放一个字符/数字、字母、文字、空格 不能为空;双引号""存放字符串,可为任意值 可为空。

引用数据类型

类、接口、数组

数据类型转换

  • 数据类型范围小的可以直接(自动)赋值给范围大的变量
    byte→short→int→long→float→double
    char→int …
  • 表达式的最终结果类型由表达式中的最高类型决定
  • 表达式中,byte、short、char直接转成 int 类型参与运算
  • 强制类型转换 /但是可能会造成数据溢出;
  • boolean类型不能强转至其他类型。

ASCII编码表

ASCII编码表:美国信息交换标准编码
几个注意的值:A-65 \ a-97 \ 0-48

运算符

“+”在无法运算的情况下做连接符
数字与字符相加 → 数字
数字与字符串相加 → 字符串 // String类型与数字相加只能做连接

int = 55+'a'=5+'a'对应的ASCII码=5+97=102;
5+a=10;
5+"a"="5a";
a+"a"="5a";
'a'+"a"="aa";

扩展赋值运算符 : +=, -+, *=, /=, %= 隐含强制类型转换

a+=b; 
a=(a数据类型)a+b;

进制数及转换

在对变量赋值时 加上前缀:

  • 二进制 0b
  • 八进制 0
  • 十六进制 0x

进制间的快速转换:二进制到八进制 三位转一位/十六进制 四位转一位

命名规则

标识符:由数字、字母、下划线或美元符组成,不能以数字开头 区分大小写

  • 包名、项目名 → 一般都小写
  • 类名 → 首字母大写,驼峰命名
  • 方法名、变量名 → 首字母小写, 驼峰命名
  • 常量名→一般全部大写,单词之间用下划线连接

数组

初始化方式:

  • 静态初始化
    ①int[] args = new int[]{v1,v2,v3..}; ②简化int[] args = {v1,v2,v3,..};
  • 动态初始化:只确定类型和长度,没有存入具体数据(有默认值)
    int[] args = new int[长度];

两种数组初始化方式是独立的,不能混用

方法

内存原理

基本数据类型 变量中存储的是相应的数据;
引用类型 变量中存放地址;
方法区:字节码文件加载时进入的内存/存放编译后的class文件;
:方法运行时进入的内存,变量存放的内存;
:new出的对象;
注意/方法与方法之间不能嵌套
方法在未被调用的时候,在方法区的字节码文件中存放,被调用的时候,进入栈内存中;

参数传递

形参:方法定义时,形参列表中的变量
实参:在方法内部定义的变量
值传递:传输实参的值,不改变原实际参数(copy副本)
引用类型的参数传递一样是值传递,但由于传递的是地址,可改变地址指向内存的值

重载

同一个类中,出现多个方法名称相同,形参列表不同。(个数、类型、顺序不同)/修饰符、返回值类型都无所谓
目的实现同一功能差异化的选择
可以在重载的方法中调用其他重载的方法 使代码简洁,提高复用性

面向对象

类:共同特征的描述

  1. 成员变量(属性)
  2. 方法(行为)
  3. 构造器
  4. 代码块
  5. 内部类
    一个代码文件可以定义多个类,但是只有一个类可以用public修饰,且与文件名相同

对象:具体实例

对象的内存原理

创建对象:1、将相应的类文件载入方法区 2、在栈内存生成对象地址空间 3、堆内存创建对象内存(其中存放对象属性以及成员方法引用地址/指向方法区中的类文件)

垃圾回收机制:当堆内存中的类对象或数组对象等没有被任何变量引用(指向)时,会被判定为“垃圾”,自动定期进行清理。

构造器

用于初始化一个类的对象,并返回对象地址。
格式: 修饰符+类名+形参列表

  • 无参构造器:没有定义任何构造器时,默认存在
  • 有参构造器:可为对象属性赋值
    一旦定义了有参构造器,无参的就不存在了,如使用 需手写
this关键字

代表当前对象的地址,可用于访问当前对象的成员变量、成员方法。
(一般出现在有参构造器中、成员方法中)

封装

面向对象的三大属性:封装、继承、多态
封装原则:对象代表什么就封装对应的数据,并提供数据对应的行为
例:“人关门” 存在“人”、“门”两类,其中“关”行为属于“门”类;“张三砍死李四” “死”方法属于李四,被张三调用。
更好的封装实现数据合理性:最常见 用private修饰属性,并提供get/set方法(可在赋值时进行合法性判断)

标准JavaBean

JavaBean:也可成为实体类(能找到对应个体),其对象可以用于在程序中封装数据(属于该对象的数据)。
标准JavaBean要求:

  1. 成员变量使用private修饰
  2. 提供成员变量对应的set()/get()方法
  3. 必须提供一个无参构造器(写了有参构造器时,默认无参构造器不存在,需要写出)
成员变量与局部变量的区别

1、类中位置不同。成员变量在类中方法外,局部变量常见于方法中 for循环中
2、成员变量有默认值,无需初始化;局部变量没有默认值,必须在使用前赋值
3、内存位置不同。成员变量存在于堆中(对象存在于堆);局部变量在栈中(方法在栈中执行)
4、生命周期不同。成员变量随对象,局部变量随方法(调用时存在,运行结束消失)
5、作用域不同。成员变量有对象即可访问,局部变量只有在定义的{ }内有效

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值