7月14号JavaSE学习笔记

配置环境:

JDK java开发工具包 java语言开发环境 JRE java程序运行环境 只需要运行程序时,可以只安装JRE
JVM java程序虚拟机

本地只需要安装使用,服务器必须要配置环境 (配置环境:(环境变量)   JAVA_HOME:JDK根路径   Path:系统执行文件所在地址  classpath(现在不需要)):


此电脑->属性->高级系统设置->环境变量->系统变量:

JAVA_HOME:jdk根目录;

Path配置时:打开jdk的bin目录(可执行文件)复制%JAVA_HOME%\bin到Path;

验证:win+R输入cmd输入命令行java version

如果是java...不是可执行文件则Path路径不对。

运行:

新建一个文件夹->新建文本文件(要有文件扩展名(查看->显示->扩展名)(例如:txt)):

重命名hello.java:记事本打开输入:

public class hello{
    public static void main(String[] args){
        
            System.out.println("java so easy!");

        }
        
}


*解释总结*:


JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。


具体来说 JDK 其实包含了 JRE和开发工具(包含javac),而JRE 包含了 JVM和 Java 核心类库。

简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。

javac(java编译器)   编译      将.java文件编译成.class文件      class文件又叫做字节码文件

过程:命令行+空格+java+空格+类名    运行指定类  

Javac 负责编译 Java 源代码(.java)成字节码文件(.class), JVM(java虚拟机)解析字节码文件编程系统(WINS)(系统)指令

过程中javac编译,java运行JVM解析给系统

java跨平台性:JVM将字节码内容解析成系统执行和系统交互,在不同的系统上安装不同版本的虚拟机,就可以执行字节码文件(java并没有直接和系统交互,JVM作为媒介交互)(一次编译,到处运行)


工具软件操作:

创建一个项目:

包作用;分化,分类一些作用


1.各种注释:三种

//单行注释

/*多行注释*/

/**

*文本注释

*/

2.外部类要求:


关键字:

关键字是开发语言中已经内定的单词,并且赋予了一定的功能,开发人员只能按照指定的语法进行使用。例如:public、void、class;

规范:只有字母,且一般所有字母全部小写

标识符:

标识出的变量:常量,类名,方法名,参数名,各种名字;

命名规范:标识符只能由字母数字$和下划线_,首字符不能是数字,不能是关键字但能包含。(中文语法通过,但不允许

其他规范:

所有表示都要见名知意! 可以缩写,但如果影响到见名知意,就不要缩写。

变量:

在程序运行阶段可以变化的的量

常量:

在程序运行阶段不可以变化的的量

声明变量:声明变量的名字和类型。

int num;//声明一个整数型对象名叫num,只能存储整数型的值

num=200;//赋值  初始化:第一次赋值  未初始化(不可使用):从未赋值

声明常量:

final int num;//声明

num=12;//初始化,不能再赋值,不管内容是否一致;

规范:只所有字母全部大写


java有两种数据类型:引用数据类型和基本数据类型

基本数据类型:

整数类型:byte、short、int、long

浮点型:float、double

字符型:char

布尔型:boolean

整数类型:

1.byte:一个字节 8个二进制位(8个bit )  一个符号位0+1-(负数转化10进制要反码加一),七个有效位(-2^7~~2^7-1)

        bit:存一个0或1,

2.short:2字节  16个二进制位(-2^15~~2^15-1)

3.int:4字节  32个二进制位(-2^31~~2^31-1)(默认类型)

4.long:8字节 64个二进制位(-2^63~~2^63-1)

        默认值0L   赋值要加L后缀区分int

浮点类型:

1.float:单精度浮点型 4字节  取值范围>long>int  

        默认值0.0f    赋值要加F后缀区分double

2.double:双精度浮点型  8字节   (默认类型)取值范围>long

        默认值0.0


float比long类型的数据范围大。
float:4个字节
long:8个字节

为什么float的4个字节比long类型的8个字节的范围大?
因为整数与小数的底层存储有点不同。
相同点:它们都是用二进制存储的
不同点:
小数先转成二进制,然后处理,然后存储。

符号位 其中最左边的为符号位,0为正,1为负。
指数 接下来的E是指数,一共8位,也用二进制来表示。IEEE规定,在float类型中,用来计算指数的偏移量为127(即存贮指数时要在原基础上+127)。
尾数 最后的F是小数部分,尾数正是由这23位的小数部分+1位组成的。

float实际指数的取值范围为-126~+127(其中-127和128作为特殊规定)
于是float的取值范围为(尾数位最小值)-2* 2^127 到(尾数位最大值)+2*2^127
即-2^128到+2^128,表示为十进制为-3.4*10^38到+3.4*10^38
1
2
3
而long的范围是
-9223372036854775808~9223372036854775807(只有19位)
所以float的范围远大于long,但是如果将long强制类型转换为float可能会出现经度损失(float的精度为科学记数法的小数点后6~7位)。


字符类型

char:两个字节  0~65535   FFFF(十六进制)   

        char c = 'c' ;''不行,必须有且只有一个;

默认值’\u0000‘即0。

布尔类型:

boolean:1/4字节   不可和其他类型转换

        默认值(false)

        boolean=true/false;占一个字节  Boolean arr={true,false};数组按整形保存。

基本类型转换

在Java中,对于byte、short、char这三种类型的变量,如果参与运算时会自动转换为int类型。

byte a = 1;
byte b = 2; 
b = a + b;         //报编译错误,不兼容的类型: 从 int 转换到 byte 可能会有精度损失
b += a;            //ok

 

隐式转换

        程序会自动完成的转换。

        取值范围小的值可以自动转换为取值范围大的值;

        byte numByte=2;
        int numInt=numByte;

        float numFloat=numByte;
        numFloat=numInt;
        numFloat=10L;

强制类型转换


        int numInt=2;
        byte numByte=(byte) numInt;

        numInt=(int) numFloat;

存不了的一刀切保留自己能保存的位数的值

整形和字符的转换:

char类型的变量可以保存默认为int类型的常量(前提是常量的值在char类型的范围内),但是不能直接保存为int类型的变量值,需要进行强制类型转换。
char c1 = 100;
int a = 100;

a=c1;
char c2 = a;//程序编译会报错。
char c3 = (char)a;

char、byte、short三种类型在进行混合运算时,会自动提升数据类型,先转换成int型。

Java中,用常量(默认数据类型为int)来给变量(数据类型为byte、short、char)赋值时,只要常量的值在该变量所述数据类型的有效范围内,则就可以正常赋值。

字符三种表达方式:

numInt='a';

char numChar=0;(只能从0开始,因为字符从0开始编码)

numChar='\u0000';  \u代表Unicode,0000是十六进制,最大值FFFF

//     \转义符    \'  代表'     \r代表回车    \n代表换行    \\代表\ 第一个转义符,第二个\

\’ 单引号字符

\\ 反斜杠字符

\r 回车

\n 换行

\f 走纸换页

\t 横向跳格

\b 退格

二进制表示: int a=0B111;  

八进制表示: int b=0111;

十六进制表示: int b=0X0111;

输入输出:

输出:

        System.out.println();可无参

        System.out.print();不可以没有参数、

输入:

        

Scanner in=new Scanner(System.in);//系统输入流对象System.in

in.close();//关闭流


运算符

        + - * / %

整数和整数运算是整数int,有long变long

%结果是+/-:a取余b结果符号和a一样

优先级:* / % + -

一元运算符

        a++   a--  ++a  --a

因为d+1返回值是int类型;

c=a++:先赋值再++;

c=++a:先++再赋值;

(++a)-(a++)=1;//++a返回值是已经自增了,而a++返回值是未自增之前的

比较运算符:

        > < >= <= == !=  返回值一定是布尔类型

比较值,和类型无关(基本数据类型)  12.0==12  true

逻辑运算符:

        &&逻辑与  ||逻辑或  !逻辑非

短路现象:多个表达式运算,前面已经明确整个表达式结果,那么后面的将不会被运行

例如:1>2&&4>3  4>3不会被运行;2>1||4>3  4>3不会被运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值