java-基础知识

jdk包含了jre和java开发工具(javac.exe, java.exe, javadoc.exe )
jre包含了jvm 和java核心类库

为什么配置环境变量?
为了在任何路径下都可以执行开发命令, 所以配置环境变量
java_home 写到bin的上一层路径

编译命令: javac 文件名
运行命令: java 类名

带有public 的类需要和文件名一致, 其余的类名可以不喝文件名一致。
类名和文件名可以不一致

编译晚源代码之后,生成一个活多个字节码文件, class文件。
使用jvm中的类加载器和解释器对字节码文件进行解释运行。
需要将字节码文件中对应的类加载内存中,涉及到内存解析。

空指针:
假设说, 数组student[1] 已经是nullL了, 再student[1].number, 取其中的属性,自然是取不到的, 这叫空指针。

引用类型的变量, 只可能存两类值, 一个是null, 一个是地址值(含变量的类型)

第一个java代码:

package demo;

public class demos {
    public static void main(String[] args){
//        System.out.println("ok");
//        System.out.println(122);
//        System.out.println(423423);
        Demo1.printString();
    }
}

class Demo1 {
    public static void printString(){
        System.out.println("----ok");
    }
}

关于特性

两个要素:类, 对象
三个特征: 封装 继承 多态
健壮性:
1. 自动垃圾回收机制
2. 去了c的指针
3. 会出现内存溢出, 内存泄露
跨平台性: 一次编译多次运行

关于命名

1.Java保存的文件名必须与类名一致;
2.如果文件中只有一个类,文件名必须与类名一致;
3.一个Java文件中只能有一个public类;
4.如果文件中不止一个类,文件名必须与public类名一致;
5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。
6. 一个文件中开始执行的了中必须有个main方法, 作为执行的入口

数据类型

  1. 基本数据类型 :整数, 小数,字符,布尔
  2. 引用数据类型: 数组, 类,接口

常量

其余的都略过不说, 特殊的布尔类型也是常量。
单引号里面只能是一个字符;多个字符的要用双引号;

变量

每个变量必须要指定类型,是强类型语言;
变量包含了变量类型,变量名,存储的值
作用:用于在内存中保存数据

定义变量的方式:必须先声明再使用

数据类型  变量名 = 变量值
int myAge = 10;

或者 先定义类型,和名字,再进行赋值

int myAge;
myAge = 10001;

变量的类型

一 按照数据类型分 :

在这里插入图片描述
注意上面的图,是数据类型的分类
字符型是一个字符;
字符串是一个类类型的数据,属引用类型。

二 按照变量在类中声明的位置分
成员变量 和局部变量 (在面向对象的时候能体现)

整型变量

在这里插入图片描述
1字节是8bit,每一个bit是一位, 每一位都是用0或者1表示;

在这里插入图片描述

在定义数字类型的时候, 如果超过其存储的范围会报错, 编译不通过。
long型变量必须以l或者L结尾,这是作为标识;
浮点型float类型数据后面要加上f或者F 作为表示;但是double不用加;

字符型:1个字符是2个字节,使用单引号, 只能写一个字符。

char c1 ='a'
char c2 = '\n'  这是转义字符,算作一个字符;

\n是换行符, \t是制表符,就是tab键

类型转换

小容量的的会向大的容量自动转换 。 此时的容量大小是数的范围大小。
byte或 char或 short -> int -> long -> float -> double
当这三种类型 byte, char,short在进行运算的时候结果会转为int
如果接受的类型不是int类的, 就会报错

class Demo2 {
    public static void test1() {
        byte a = 2;
        char b = 'a';
        int c = a + b;
        // byte c1 = a + b; 编译不会通过  接收的至少不要是int
        System.out.println(b);
        System.out.println(c + 1);
    }
}

但是大的向小的转换的时候回损失精度。

强制类型转换

 double s1 = 12.9;
  int s2 = (int)s1;  // 前面加上要强制转换的类型 
 float s3 = (float)s1;
  System.out.println(s1);
  System.out.println(s2);
  System.out.println(s3);
  

注意:

  1. 对于整型常量, 即自己定义的,默认是int类型,
  2. 浮点型常量, 即自己定义的, 默认是float类型
 byte z1 = 1;
 byte z2 = z1 + 10;  //  这样编译出错   因为10 是常量, 默认是int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值