Java基础 -

简介: Java基础 -

1. 编程语言发展历史

机器语言-》汇编语言-》高级语言

Java属于高级语言,高级语言都是通过翻译之后变为计算机底层可以识别的机器语言

机器语言都是由0和1组成的

1.1. jdk组成

jdk是由jvm和核心类库(这两个叫做jre)还有开发工具(Java、Javac等组成)

jvm:Java虚拟机,真正让Java程序运行的地方

jre:Java运行环境

2. 类型转换

  1. 自动类型转换

类型范围小的变量,可以直接赋值给类型范围大的变量

byte -> short ->int -> long -> float -> double

char-> int(char转换为int对应的是字母所对应的数字)

byte a = 12;
int b = a; //发生了自动类型转换
  1. 表达式的自动类型转换

在表达式中,小范围类型的变量,会自动转换为表达式中较大范围的类型,在进行运算

byte 、short、char-> int -> long -> float -> double

表达式的最终结果类型由表达式的最高类型决定

在表达式中, byte 、short、char是直接转换为int进行运算

byte a = 10;
int b = 20;
long c = 30;
long rs = a + b + c; //表达式的最终结果由表达式的最高类型决定,所以前面为long
 
byte i = 10;
short j = 20;
int res2 = i + j; //在表达式中, byte 、short、char是直接转换为int进行运算
  1. 强制类型转换

大范围数据类型转换为小范围数据类型

强制类型转换

数据类型 变量2 = (数据类型)变量1、数据

int a = 20;
byte b = (byte) a; //alt+enter键
 
int i = 1500;
byte j = (byte) i;
System.out.println(j); //-36

强制转换数据类型可能会导致数据(丢失)溢出

浮点型数据类型转换为整型,直接丢失小数部分,保留整数部分返回

3. 自增自减

放在变量的前面,先对变量+1或者-1,在拿变量的值进行运算(先加后用)

放在变量的后面,先拿变量的值进行进行运算,在对变量的值进行+1或者-1(先用后加)

a++; //a = a + 1;
 
2++;//会报错 原因如下
//++ -- 只能操作变量,不能操作自面量
 
int i = 10;
int res = i++;//10(先用后加) 
i;//11
 
int j = 10;
int ress = ++j; //11
j; //11 (先加后用)
 
 
//单独使用放在前面后面没有区别
//非单独使用:在变量前,先加后用,反之。

4. 扩展运算符

对应视频 p31

a += b; //等价于 a = a + b;
a /= b; //等价于 a = a / b;
 
int a = 6;
int b = 2;
a *= b; //a = (int)(a * b); =后面的int是a的数据类型

5. 方法

修饰符 返回值类型 方法名(形参列表){
    方法体代码(需要执行的功能代码)
  return 返回值;  
}

方法是一种语法结构,它可以把一段代码封装城一个功能,以便重复调用

  1. 方法声明了具体的返回值类型,内部必须使用return返回对应数据类型
  2. 形参列表可以有多个,甚至没有,如果有多个形参,多个形参必须使用,隔开,且不能给初始化。

5.1. 方法的执行原理

方法运行在栈内存。

栈的特点:先进后出。方法在栈中运行,可以保证一个方法调用完另一个方法后,可以回来



5.2. Java的参数传递机制
  1. 基本类型的参数传递

值传递:传输的是实参存储的值的副本

实参:在方法内部定义的变量

形参:以方法为例,就是方法定义时的变量

  1. 引用类型的参数传递

基本类型的参数传递的是存储的数据值

引用类型的参数传递的是地址值 但是这两种类型都是值传递

5.3. 方法的书写规范

遵循1:是否需要定义返回值,返回值的类型

遵循2:是否需要定义形参


5.4. 方法重载

只关心名称(必须一样)和形参列表(形参个数,类型和顺序不同,不关心形参名称),不关系修饰符,返回值类型

方法重载的应用场景:

开发中我们经常要为处理一类业务,提供多种解决方案,此时用方法重载来设计。

//形参个数,类型和顺序不同,不关心形参名称
void test(int a,int b)
void test(int b,int a) //这是错误的,不是方法的重载!

5.5. 一些常用的跳出xxx的关键字使用方法

6. 面向对象

Java种存在自动垃圾回收机制,会自动清楚掉垃圾对象。

6.1. this关键字

this就是一个变量,可以用在方法中,来拿到当前对象

那个对象调用方法,this就指向那个对象

6.2. 构造器

6.3. 封装

6.4. 实体类


6.5. 成员变量与局部变量的区别


目录
相关文章
|
2月前
|
Java
JAVA基础小记
JAVA基础小记
18 0
|
11月前
|
存储 消息中间件 NoSQL
day48_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
11月前
|
前端开发 Java 数据安全/隐私保护
day41_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
11月前
|
消息中间件 存储 RocketMQ
day59_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
11月前
|
监控 负载均衡 Java
day45_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
11月前
|
缓存
day47_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
11月前
|
NoSQL 前端开发 Redis
day51_java_基础巩固
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!虽然有些干货知识很通俗,但也是自己的必经之路i,加油!!!
|
11月前
|
Java 编译器
day09_java基础
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!
|
11月前
|
Java
day02-Java基础
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!