Java基础01

1.一个数字1或者一个数字0,代表一个位(bit)

每逢8个位就是一个字节(Byte)

 

1 Byte = 8 bit

1 KB = 1024 Byte

1 MB = 1024 KB

1 GB = 1024 MB

1 TB = 1024 GB

1 PB = 1024 TB

1 EB = 1024 PB

1 ZB = 1024 EB

 

2.Dos常用命令

1. 切换盘符

D:Windows当中的文件夹路径不区分大小写。

 

2. 创建一个文件夹:md 文件夹名称

 

3. 切换文件夹路径:cd

 

cd 文件夹名称

cd ..返回上一级路径

cd 文件夹1\文件夹2\文件夹3

cd \ 返回根路径

 

4. dir 查看当前路径下的内容

 

5. cls 清屏

 

6. exit 退出


3.  HelloWorld案例的编写与运行

l  案例的代码编写

Java源代码编写只需要使用最普通的文本编辑器编写即可,例如Windows系统自带的notepad即可。

然后修改文件名称为HelloWorld.java,注意文件名称的大小写。以及是否已经修改了文件的扩展名。

 ☀首先定义一个类

public class 类名

  在类定义后加上一对大括号

{}

☀  在大括号中间添加一个主(main)方法/函数

public static void main(String [] args){ }

在主方法的大括号中间添加一行输出语句

System.out.println(“HelloWorld”);

☀ 完整代码:

publicclass HelloWorld{

    publicstaticvoid main(String[] args){

        System.out.println("HelloWorld");

    }

}

 

案例的代码运行

n  编译

█  进行源文件所在目录:即进入D:\java目录;

█  我的JDK安装在D:\develop\Java\jdk1.7.0_51目录,那么编译器完整名称为:D:\develop\Java\jdk1.7.0_51\bin\javac.exe;

█  我的源文件存放在:D:\java\HelloWorld.java;

█  编译命令为:D:\java>D:\develop\Java\jdk1.7.0_51\bin\javac.exeHelloWorld.java

█  运行

█  进入字节码文件所在目录:即进入D:\java目录;

█  D:\develop\Java\jdk1.7.0_51\bin\java.exe HelloWord;

█  注意,在运行HelloWorld.class文件时不能给出“.class”,切记!!!


4.     Path环境变量配置

① 为什么要配置

  我们发现每次程序编译与运行都要输入D:\develop\Java\jdk1.7.0_51\bin后,才能使用javac.exe与java.exe,这样的方式很麻烦,那么,能否不输入D:\develop\Java\jdk1.7.0_51\bin呢?是可以的,通过配置Windows的PATH环境变量来完成。

②  我们配置path的目的是让Java的bin目录下的.exe命令可以在任意目录下执行,无需进入到javac所在的目录就可以找到javac.exe命令,方便完成程序。

③ 如何配置

创建新的变量名称:JAVA_HOME

计算机-右键属性-高级系统设置-高级-环境变量-系统变量

█  为JAVA_HOME添加变量值: JDK安装目录

█  在path环境变量最前面添加如下内容 %JAVA_HOME%\bin;


1.1.1     Java语言跨平台原理

█ 平台:指的是操作系统(Windows,Linux,macOS)

█ 跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行

即java的.class程序可以在不同操作系统上均可以运行。(java的.class文件相当于Windows中的.exe文件,是可执行的程序)

█ 原理:实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine)

比喻: JVM相当于翻译

l  java语言是跨平台的,java虚拟机不是跨平台的。


JDK&JRE&JVM关系示意图

Java基础01


1.1     常量分类

█ 常量概述

█ 在程序执行的过程中,其值不可以发生改变的量

█ 字符串常量    用双引号括起来的内容(“HelloWorld”)

█  整数常量        所有整数(12,-23)

█ 小数常量        所有小数(12.34)

█ 字符常量        用单引号括起来的内容(‘a’,’A’,’0’)

█布尔常量        较为特有,只有true和false

█  空常量             null(数组部分讲解)

 

注意:字符串可以为空,单字符必须有且仅有一个字符

null 空常量 不能用于打印输出语句.

————————————————————————————————————————————————————

 

1    变量概述

在程序执行的过程中,在某个范围内其值可以发生改变的量

  从本质上讲,变量是内存中储存数据的区域,你能用它来存数据和取数据,还可以改变这个数据。

 

变量(存放数据):在程序运行期间,一定范围内发生改变的量.

理解:1用来存放数据

2 数据内容可以发生改变

3一次只能存放一个数据

4可以根据变量名称使用其中的数据

5存放的数据必须满足数据类型的要求


 

2 变量概述

作用

给包,类,方法,变量等起名字

组成规则(硬性规定

由字符,下划线_,美元符$组成

这里的字符采用的是Unicode字符集,所以包括英文大小写字母,中文字符,数字字符等,但符号只能有两个:下划线_和美元符$

注意事项(硬性规定

不能以数字开头                     

不能是Java中的关键字         

命名规则(软性建议

基本要求

见名知意

  常见命名的规则

包 (其实就是文件夹,用于对类进行管理)

全部小写,多级包用点隔开。公司域名的反写。

cn.xxx                   (相当于两级文件夹:cn\xxx)

com.xxx            (相当于两级文件夹:com\xxx)

一个单词首字母大写                              Student             Car

多个单词,每个单词首字母大写        HelloWorld 又叫大驼峰 命名

 

变量或者方法

一个单词首字母小写。                                                             age           show()

多个单词,从第二个单词开始每个单词首字母大写        maxAge   getAge() 又叫小驼峰


3    数据类型概述

l  数据类型分类

         |- 基本数据类型

                  |- 数值型

                          |- 整数类型byte,short,int,long

                          |- 浮点(小数)类型float,double

                  |- 字符型char

                  |- 布尔型boolean

         |- 引用数据类型

                  |- 类class

                  |- 接口interface

                  |- 数组[]

l  基本数据类型(4类8种)

四类 八种 字节数 数据表示范围
整型
(精确)
byte 1 -128~127
short 2 -32768~32767
int(默认) 4 -2147483648~2147483647
long 8 -263~263-1
浮点型
(不精确)
float 4 -3.403E38~3.403E38
double(默认) 8 -1.798E308~1.798E308
字符型 char 2 表示一个字符,如('a','A','0','家')
布尔型 boolean 1 只有两个值true与false

 

l  注意事项:

                  A:整数默认是int类型,浮点数默认是double

                  B:定义long类型数据的时候,要加L或者l,建议加L

例如: long l = 6000000000L;

                    定义float类型数据的时候,要加F或者f,建议加F

例如: float f = 12.34F;

                  C:Java中的字符采用的是Unicode字符集,每一个字符占用两个字节,char就可以存储一个汉字

                  D:boolean类型适用于逻辑运算,一般用于流程控制


4   变量定义的注意事项

l 变量未赋值,不能直接使用

         引出变量的第二种使用格式

  变量只在它所属的范围内有效。

         变量在哪对大括号内,变量就属于哪对大括号

  一行上可以定义多个变量,但是不建议


5 类型转换

boolean类型不能转换为其他的数据类型

默认转换: 范围小的数据类型直接转换成范围大的数据类型

  转换规则byte,short,char—int—long—float—double

  注意事项byte,short,char相互之间不转换,他们参与运算首先转换为int类型

  格式: 范围大的数据类型 变量 = 范围小的数据类型值;

 

强制转换: 表示范围大的数据类型强制转换成范围小的数据类型

  范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;

不建议,有可能损失精度

 


6   运算符

     概述

l  运算符概述

  对常量和变量进行操作的符号称为运算符       

l  表达式概述

  用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。

  定义两个int类型的变量a,b,做加法(a + b)

 

  常用运算符

  1.算术运算符

+、-、*、/、%(n  两个相除数据的余数。用处: 判断两个数据是否整除)

   ++--的用法

  ++,--运算符:对变量做加1或者减1操作。   ++,--既可以写在变量的后面,也可以写在变量的前面

①单独使用:

++,--无论是写在变量的前面还是后面,结果是一样的

  ②和其它操作混合使用:

如果++,--写在变量的后面,先拿变量本来的值参与操作,结束后变量做++,--

如果++,--写在变量的前面,先把变量做++,--,再用改变后的值参与操作

 2 赋值运算符

l  基本的赋值运算符:=

l  扩展的赋值运算符:+=、-=、*=、/= 、%=

n  把左边和右边的结果赋值给左边。

n  注意:左边不能是常量

n  隐含了一个强制类型转换.

a +=3 a= a+3;

a -=3 a= a-3;

a *=3 a= a*3;

a /=3 a= a/3;

a %=3 a= a%3;

3.关系运算符

==,!=,>,<,>=,<=

关系运算符的结果都是boolean型,也就是要么是true,要么是false。

注意事项

关系运算符“==”不能误写成“=”

 4. 逻辑运算符

l  作用:逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6。

l  基本使用:&(与),|(或),^(异或),!(非)

n  与:&      有false则false

n  或:|       有true则true

n  异或:^ 相同则false,不同则true

n  非:!       true则false,false则true

 

   &&&的区别 (作用相同,节约点性能)

n  单&时,左边无论真假,右边都进行运算;

n  双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

n  “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

 5. 三元运算符

 

l  基本使用

n  格式 (关系表达式)?表达式1:表达式2

如果条件为true,运算后的结果是表达式1

如果条件为false,运算后的结果是表达式2

n  示例:

获取两个数中大数。

int x=3,y=4,z;

z = (x>y)?x:y;//z变量存储的就是两个数的大数。

public class Demo09Operator {

    public static void main(String[] args) {

        inta = 10;

        intb = 20;

 

        intc = (a>b) ? a : b;

        System.out.println("c:" + c);

    }

}


7   键盘录入Scanner

    概述

我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,把数据改进为键盘录入,提高程序的灵活性。

1  导包(位置放到class定义的上面)

import java.util.Scanner;

2 创建对象

Scanner sc = new Scanner(System.in);

3  调用方法接收数据

int x = sc.nextInt();

 

public class Demo01Scanner {

    public static void main(String[] args) {

        //创建键盘录入数据的对象

        Scanner sc = new Scanner(System.in);

       

        //接收数据

        System.out.println("请录入一个整数:");

        inti = sc.nextInt();

       

        //输出数据

        System.out.println("i:"+i);

    }

}

 

1.next获取的字符串不能有空格,nextLine获取的方法字符串中可以空格

 

混合使用后 next nextInt nextDouble 等共享一个队列,但nextLine方法不排队, 解决方法,为nextLine单独创建一个Scanner