JAVA初始/数据类型与变量/逻辑运算

本文介绍了Java作为一门面向对象的编程语言的基本概念,包括JVM、JRE和JDK的区别。讨论了Java的半编译半解释性质,以及命名规范。接着,详细阐述了数据类型,包括数据类型转换的规则,并探讨了变量的默认值和常量的定义。此外,还提到了逻辑运算的相关内容和编程中需要注意的事项,如浮点数精度问题和布尔类型的特点。
摘要由CSDN通过智能技术生成

前言

  初始JAVA,主要从对java的基本概念,java的数据类型,变量以及逻辑运算进行笔记记忆。


一、java是什么?

1,java是一门面向对象编程语言。

      面向对象,即依靠对象的交互完成事情,主要用接口实现

 2,JVM/JRE/JDK    

  • JVM:整个Java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
  • JRE:运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
  • JDK:Java开发工具包 ,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。JDK中包含了JRE,JRE又包含JVM

3,java属于半编译半解释性文件

     java源程序通过 javac 编译生成字节码文件,通过java命令运行java程序

     (1)通过JDK提供的javac.exe编译器,将源文件转化为.class文件

     (2)通过JRE提供的java.exe解释器,将.class文件通过JVM解释成字节码文件

4,java命名规范

  • IDEA中包用小写字母,多个之间用“_”分割
  • 大驼峰:定义类和源文件时
  • 小驼峰:定义方法和变量时
  • 常量命名规范:单词使用纯大写字母表示,多个单词使用_分割。

二、数据类型与变量

1,数据类型

java对于每一种数据都定义了明确的数据类型,并在内存中分配了不同大小的内存空间。

2,数据类型转换

   (1)概念

       隐式类型转换:小类型到大类型(情况1:直接赋值; 情况2:大小类型共同参与运算时)

        强制类型转换:大类型到小类型

    (2)特殊情况

        float和long类型转换属于小类型到大类型(float和double不是按照二进制来计算的,存储是按照科学技术法存储,表示范围为2^128个数量级)

long a = 100;
folat b = a;  //属于小类型到大类型转换   

 

   

   (3)byte相加

          小于四字节的类型转换问题,由于cpu在内存中进行数据读写时,默认都是按照4字节来进行读写数据的,为了硬件上实现方便,byte、short、char这种低于4字节的类型,都会提升为int类型在进行计算。

    (4)String字符串

  • 字符串属于引用类型变量
  • 任意类型转为String,使用String中的ValueOf。如String str3 = String.valueOf(10);
  • String转换为int时,可以调用Integer.parselnt(str),将字符串转换为int,前提是字符串是由纯数字组成的;
  • String中的“+”用来表示拼接,如String ret = "计算结果: " + 8;
  • 在进行web开发时,在网页上获取的都是字符串。

2,变量

(1)变量的默认值

  • 在方法中定义的变量为局部变量,需要先进行赋值才能使用
  • 在类中定义的变量存在默认值,不赋值就是各数据类型的默认值
  • 静态变量static只能定义在类中

(2)常量

  •   字面型常量:直接写出来的值,用双引号括起来的统称为字符串常量
  •   普通常量:java定义普通常量使用final,解释为终结器,被其修饰的值和类型不会在发生变化

 

三、逻辑运算

四、注意事项

1,某些特定数据中可能会有某些错误数据产生

     原因:所有语言都是使用0,1二进制数来模拟小数的实现。

public class DataStruct {
    public static void main(String[] args) {
        double a  = 1.1;
        double b = 1.1;
        System.out.println(a*b);   
        //打印结果不准确,为1.2100000000000002
    }
}


//TODO: 解决办法     
public class DataStruct {
    public static void main(String[] args) {
        BigDecimal b1 = BigDecimal.valueOf(1.1);
        BigDecimal b2 = BigDecimal.valueOf(1.1);
        System.out.println(b1.multiply(b2));
    }
}

 2,Java boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法

 3,数据类型赋值时候的溢出问题

 4,做除法和取模时,右操作数不能为0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值