JAVA基础

JAVA基础

入门程序开发

HelloWorld.java 文件名与类名一致:

public class HelloWorld{
	public static void main(String[] args){
		System.out.println("Hello World");
	}
}
  • 编译:javac 文件名.java
  • 运行: java 文件名

JDK11里新加的一个feature,目的是无需使用javac进行编译,直接使用Java运行(Java 文件名.java),他会在底层自己编译得到临时的class文件,再去执行,得到结果。

JDK组成

JDK:java开发工具包

  • 开发工具:java,javac等;
  • JRE:java的运行时环境
    • JVM :java虚拟机,运行java程序的地方;
    • 核心类库:java自己写好的程序,给程序员自己的程序调用;

数据类型

  • 八大基本类型

byte short int long float double char boolean

  • 引用类型

String

类型转化

  • 自动类型转化

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

  • 表达式的自动类型转化

在表达式中,小范围类型的变量,会自动转化成表达式中较大范围的类型,再参与运算

注意:

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

在表达式中,byte、short、char直接转化为int类型参与运算;

  • 强制类型转化

强行将类型范围大的变量、数据赋值给类型范围小的变量。

注意:

强制类型转化可能造成数据(丢失)溢出;

浮点型强转成整型,直接丢掉小数部分,保留整数部分返回;

逻辑运算符

  • & :有一个为false、结果为false
  • && : 有一个为false、结果为false、但前一个为flase,后一个条件不执行
  • | :有一个为true、结果为true
  • || :一个为true、结果为true,但前一个为true,后一个条件不执行
  • !:!flase = true、!true = false
  • ^ :相同是false,不同是true

注意:实际开发中,常用的逻辑运算符还是:&&、||、!

运算发的优先级:

()

!、-、++、–

*、/、%

+、-

<<、>>、>>>

<、<=、>、>=、instanceof

==、!=

&

^

&&

||

?:

=、+=、-=、*=、/=、%=、&=

数组执行原理

JAVA内存分配:

  • 方法区:字节码文件先加载到这里
  • 栈:方法运行时所进入的内存,变量也是在这里
  • 堆:new出来的东西会在这块内存中开辟空间并产生地址
  • 本地方法栈
  • 程序计数器
public class ArrayyDemo{
    public static void main(String[] args){
        int arr1 = {11,22,33}
        int arr2 = arr1;
        System.out.println(arr1);
        
        arr2[1] = 99;
        System.out.println(arr1[1]);
    }
}

请添加图片描述首先将程序的class文件提取进入方法区,然后将main方法压栈,接着在main方法中开辟arr1这个变量的空间,然后执行等号右边的操作,将其放在堆内存中开辟的空间,将其地址存入至arr1在栈中开辟的空间,这样arr1会指向堆内存中的数组对象。将arr1中存的地址拷贝一份,存入arr2中,这样arr2也会指向堆内存中的数组对象。

方法执行原理

方法被调用的时候,时进入栈内存中运行。

请添加图片描述

  • 25
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值