java基础学习1:java简介;基础语法;数据类型;字面值;基本类型转换;变量;数组

目录

1.常识!

1.1Java语言平台版本

1.2 Java语言特性

1.3JDK概述

1.4 JDK JRE JVM解释:

2.java语法基础

2.1 标识符

2.2 关键字

2.3 变量

3.数据类型

3.1 基本类型介绍(八种)

4. 基本类型的字面值

4.1整数字面值是int类型

4.2 byte,short,char三种比int小的整数可以用范围内的值直接赋值

4.3浮点数的字面值是double类型

4.4字面值后缀L D F

4.5进制前缀

5.基本类型转换

5.1 小到大(隐式转换)

5.2 大到小(显示转换)

5.3 口诀: 小到大,直接转  大到小,强制转  浮变整,小数没

6.变量

6.1 概念

6.2 局部变量

6.3 成员变量

7.数组

7.1概念

7.2 创建数组

7.3 创建数组过程分析

7.4 数组的长度

7.5数组的遍历

7.6 创建随机数组

7.7 数组工具类Arrays


1.常识!

1.1Java语言平台版本

1)    J2SE/JAVASE --- Standard Edition---标准版/基础版

开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。

2)    J2ME/JAVAME --- Micro Edition  --- 微型版/移动版

是为开发移动设备和嵌入式设备(电器、机器人、机顶盒…)提供的解决方案。

3)   J2EE/JAVAEE --- Enterprise Edition--- 企业版/商务版

是为开发企业环境下的应用程序提供的一套解决方案,主要针对于企业级应用程序开发。

1.2 Java语言特性

简单性 高性能 编译性 解释性 分布式处理 健壮性 安全性 面向对象 开源 跨平台

什么是跨平台性?

通过Java语言编写的应用程序在不同的系统平台上都可以运行。

原理是什么?

不同的操作系统都有与之对应的JVM,只要在需要运行java应用程序的操作系统上,安装一个JVM,由JVM来负责Java程序在该系统中的运行。所以只需要写一个Java程序,就可以在多个不同的操作系统上执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。

注意JVM是Java语言能够跨平台的前提,但是JVM本身不跨平台

1.3JDK概述

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。

JDK是整个java开发的核心,它包含了:

1.      JAVA开发工具(jdk\bin)

2.      基础开发库(jdk\jre\lib\rt.jar)

3.      基础开发库的源码(jdk\src.zip)

1.4 JDK JRE JVM解释:

JDK(Java Development Kit) --- Java开发工具包 --- JRE+开发工具

开发java程序最小的环境为JDK,所以JDK是JAVA语言的核心

JRE(Java Runtime Environment) --- Java运行时环境 --- JVM+运行java程序所必需的环境

运行java程序最小的环境为JRE

JVM(Java Virtual Machine)---负责加载.class并运行.class文件

JVM(JAVA虚拟机)将JAVA代码转换为对应的操作系统可以理解的指令,不同的操作系统有不同虚拟机与之对应,同一段代码交给虚拟机之后,虚拟机再转化给操作系统

什么是将java代码翻译成当前操作系统所理解的指令?

这指的就是编译的过程,将.java文件编译成.class字节码文件.编译完成会产生一个.class文件,这个文件称为字节码文件,操作系统看的指令文件就是字节码文件。

2.java语法基础

2.1 标识符

标识符可以简单的理解成一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等等。我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则:

1)     标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符

2)     不能以数字开头。如:123name 就是不合法

3)     标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符

4)     标识符的命名最好能反映出其作用,做到见名知意。

5)     标识符不能是Java的关键字

2.2 关键字

在Java中,有一些单词被赋予了特定的意义,一共有50个关键字。这50个单词都是全小写.

其中有两个保留字:const和goto。注意,关键字不能被用作标识符!!

2.3 变量

在JAVA中,我们需要记录一些数据,但这些数据的值是不固定的,总在变,我们可以把这些数据理解为变量。

我们通过三个元素来描述变量:变量类型 变量名以及变量值

int age  =  18;   //声明int类型的变量并赋值

String tel ;  //声明String类型的变量

注意:

1、 变量名必须是一个有效的标识符

2、 变量名不可以使用java关键字

3、 变量名不能重复

3.数据类型

3.1 基本类型介绍(八种)

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

java是一个强类型的语言,会把日常见到的数据,分成好多类型.

内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

位 bit,来自英文bit,音译为“比特”,表示二进制位。

1 Byte = 8 Bits (1字节 = 8位)

1 KB = 1024 Bytes   1 MB = 1024 KB   1 GB = 1024 MB

4. 基本类型的字面值

4.1整数字面值是int类型

int x = 99999;//对,右面数据的字面值是int类型

int x = 99999999999;//错,右面数据的字面值是int类型,但是已经超出int的取值范围。

4.2 byte,short,char三种比int小的整数可以用范围内的值直接赋值

byte b1=127;//对,

byte b2=128;//错,超出byte范围

4.3浮点数的字面值是double类型

double r =3.14;//对

float r =3.14;//错,右面的数据字面值是doublefloat4字节存不下double类型的数据

4.4字面值后缀L D F

long x =99999999999L;//字面值是int类型,需转成long类型的数据,加字面值后缀L即可

float b = 3.0F;//3.0字面值是double类型,加后缀F会变成float类型

double d = 3D;//3字面值是int类型,加后缀D,会变成double类型

4.5进制前缀

0b   - 标识这是2进制 ,如:0b0101

0    - 标识这是8进制, 8进制是三位,如: 023

0x   - 标识这是16进制,如: 0x0001

\u   -标识这是char类型,属于16进制

5.基本类型转换

箭头开始的地方是小类型,箭头指向的地方是大类型

5.1 小到大(隐式转换)

byte m = 120;  

int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用

float  f = 3.2f; double d = f; -->可以执行





5.2 大到小(显示转换)

需要强制类型转换

int x = 999;

byte y =(byte)x;//大转小,右面x给左面的y小类型赋值,不可以,需要强制类型转换

容量大的类型转换为容量小的类型时必须使用强制类型转换。

1)     转换过程中可能导致溢出或损失精度

例如:int  i =128;   byte b = (byte)i; //打印的结果是-128

因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。

2)     浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

例如:float f = 32.7f;  int a2 =(int) f;    //打印的结果是32  

3)       不能对boolean类型进行类型转换。



5.3 口诀: 小到大,直接转  大到小,强制转  浮变整,小数没

低  ------------------------------------>  高
byte,short,char—> int —> long—> float —> double  

6.变量

6.1 概念

可以改变的数,称为变量。在Java语言中,所有的变量在使用前必须声明

一般通过“变量类型 变量名 = 变量值 ;”这三部分来描述一个变量。如:int a = 3 ;

变量的使用原则:就近原则,即尽量控制变量的使用范围到最小

6.2 局部变量

位置:定义在方法里或者局部代码块中

注意:必须手动初始化来分配内存

作用域:也就是在方法里或者局部代码块中,方法运行完内存就释放。

6.3 成员变量

位置:类里方法外

注意:不用初始化,也会自动被初始化成默认值

作用域:整个类中,类消失变量释放

7.数组

7.1概念

数组Array,标志是[],用于存储多个相同类型数据的集合,想要获取数组中的元素值,可以通过脚标(下标)来获取数组下标是从0开始的,下标的最大值是数组长度减1.

7.2 创建数组

数组的创建方式一般分为动态初始化和静态初始化

//1. 动态初始化

        int[] a = new int[5];

//2. 静态初始化

        int[] b = new int[]{1,2,3,4,5};

        int[] c = {1,2,3,4,5};

7.3 创建数组过程分析

程序创建数组int[]a = new int[5];时发生了什么?

1.在内存中开辟连续的空间,用来存放数据,长度是5

2.给数组完成初始化过程。给每个元素赋予默认值,int类型默认值是0

3.数组完成初始化会分配一个唯一的地址值

4.把唯一的地址值交给引用类型的变量a去保存

TIPS:数组名是个应用类型的变量,它保存着的事数组的地址,不是数组中的数据

7.4 数组的长度

数组的长度用length属性来表示,数组一旦创建,长度不可改变,数组的长度允许为0

静态数组创建--已经知道了数组中的具体数据

动态数组创建--知道数组的长度,后期加内容

/**char类型底层做了特殊处理,可以直接打印数组中的元素

但是其他所有类型的数组想要打印数组中的具体元素,需要借助数组的工具类Arrays.toString()

**/

获取创建络的数组的长度

syso(c3.length);

syso(s.length);

7.5数组的遍历

for(int i = 0 ; i <a.length ; i++) {

            //a[i]--根据下标i来获取数组a中对应位置上元素的值

            System.out.println((i+1)+"月有:"+a[i]+"天");

输出每个月的天数打印到控制台

数组的遍历:通过循环的方式,操作的是数组的下标

循环开始a[]--数组中的第一个元素

循环结束:a[a.length-1]--数组中的最后一个元素

如何变化:++

7.6 创建随机数组

public static void method3(){

//1.创建数组--动态

        int[]a = new int[10];

        //2.遍历数组,给数组中的每个元素赋值

        for(int i = 0;i<a.lenth;i++){

                //100是自定义的数据,表示生成的随机整数的范围是[0,100)

                a[i]=new Random().nextInt(100);

                //a[i] = new Random().nextInt(100)+1;//取值范围前后都+1-->[1,101]

}

//3.使用数组的工具类查看数组中的元素

        System.out.printIn(Arrays.toString(a));

}

7.7 数组工具类Arrays

1 Arrays.toString 把数组里的数据,用逗号连接成了一个字符串[值1,值2]

2 Arrays.sort 对数组进行排序,对于基本类型的数组使用的是优化后的快速排序算法,效率高;对引用类型数组,使用的是优化后的合并排序算法

3 Arrays.copyOf 把数组赋值成一个指定长度的新数组 

新数组的长度 大于 原数组, 相当于复制,并增加位置

新数组的长度 小于 原数组, 相当于截取一部分数据

eg: int[] to = Arrays.copyOf(from, 5);//需要复制哪个数组,复制的长度

【冒泡排序(待补充)】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值