Java 基础学习 day01

2019-08-09 00:00:00 java 学习 基础

——-Java 学习 day01——-

 

java的三大技术架构

Javase:java标准版,该体系的知识点主要是学习java基础的知识点, 主要用于桌面应用软件的开发。比如计算器,QQ软件等。==市场上几乎没有人使用java去开发桌面应用程序,因为java在创立的时候定位该门语言是面向互联网的一门语言。Java的图形化界面非常丑

Javaee:java企业版,基于javase的企业级应用的开发。比如淘宝,京东,ERP系统等。

Javame(已经被淘汰):java微型版,应用于移动设备和电子类产品的嵌入式开发。比如手机游戏,手机软件等。 Android使用java语言去开发。

 

-什么是java跨平台?

通过java语言编写的应用程序可以在不同的操作系统上直接运行。具有一次编译,到处运行的特点。

 

java如何实现跨平台?

a.通过JVM实现java语言跨平台

b.在运行java程序的操作系统上,安装对应的JVM虚拟机,实现java语言跨平台

 

面试题:java语言编写出来的软件是否跨平台? Jvm是否跨平台?

跨平台,jvm全称java虚拟机, java虚拟机的作用就是用于解析class文件的。 Jvm不跨平台。

 

——–2——–

什么是jvm、什么是jre, 什么是JDK ? JVM、JRE、JDK三者之间的关系?

JVM:Java虚拟机,jvm的作用负责解析运行class文件,保证java程序跨平台。(Java Virtual Machine)

JRE:(Java Runtime Environment) Java运行环境,包含JVM和核心类库。如果只是想运行java程序,只要安装JRE即可。

JDK:Java开发工具包,包含JRE和开发工具。如果程序员想要开发java程序,需要安装JDK环境。

开发工具包括:编译工具javac.exe  ,运行工具java.exe 等。

 

小结

jvm: java虚拟机负责解析运行class文件。

Jre: jre=jvm+核心类库 。 Java运行环境,负责运行java的程序

Jdk: jdk = jre+ 开发工具

 

JVM、JRE、JDK三者之间的关系?

Jre=jvm+核心类库

Jdk = jre+ 开发工具

 

——–03——–

Path环境变量的配置

 

为什么要配置path环境变量?

a 为了在任意文件下能使用JDK的bin目录下开发工具

 

配置步骤?

1、此电脑—>属性—>高级系统设置—>高级—>环境变量==

2、新建系统变量

b1变量名:JAVA_HOME

b2变量值:JDK的安装目录(到bin目录的上一层)

3、将 %JAVA_HOME%\bin 添加到Path变量中。 %环境变量名% 引用某指定的环境变量

4、打开DOS系统,输入javac,验证是否配置成功。

 

理解配置环境变量的意义

a 让控制台在任意目录下都可以使用java的开发工具。

 

疑问: 为什么配置了path环境变量之后就可以在任意目录下去使用java的开发工具了呢?

a 当我们在控制台输入java命令的时候, Windows系统首先会在当前目录下去搜索是否有java.exe 的开发工具,如果找到直接执行,如果没有搜索到那么就会根据path环境变量配置的路径下去搜索是否有对应的可执行程序。如果有直接执行,如果还没有直接报错。

 

——–04——–

HelloWorld 案例

A    Java程序开发运行流程?

编写代码:编写.java后缀的源文件

编译代码:将.java文件编译成.class后缀的字节码文件

运行程序:使用 java工具运行编译好的字节码文件

编译: javac 文件名.java

运行: java  class文件名

 

Helloworld代码

Public class helloworld {

  Public static void main(String[] args) {

    System.out.println(“helloworld”);

  }

}

 

Java程序运行的流程?

编写java 的源代码

编译 javac java的源文件

运行 java class文件

编译与运行分别使用哪个工具

编译 javac java的源文件

运行 java class文件

独立编写并运行helloworld案例?

 

 

 ——–05——–

helloworld案例常见问题

1)、中文符号问题。(java中的符号都是英文的)

2)、单词大小写问题。(java是区分大小写的)

3)、文件扩展名问题。(java源文件扩展名为.java)

4)、程序主方法main书写问题。(main为程序的主入口,单词不能写错)

5)、文件名和类名不一致问题。(public限制java文件名和类名要一致)

 

Notepad++编码设置

设置 –> 首选项 –> 新建,格式选择Windows,编码选择ANSI。

 

——–06——–

注释

注释的作用?

对代码进行解释说明,便于开发人员理解和维护代码。

注释不会被程序编译和运行。

注释的分类?

单行注释 //

多行注释 /* */

文档注释 /** */

 

 

Java程序中最基本的组成单位是类。

类的定义格式:

Public class 类名 {

}

 

这是我定义的helloworld类

*/

Public class helloworld {

/*

这是main方法

Main方法是程序的入口方法,代码的执行是从main方法开始的

*/

Public static void main(String[] args) {

// 这是输出语句,””里面的内容是可以改变的

System.out.println(“itheima”);

}

}

 

 

——–07——–

关键字

什么是关键字?

在java语言中有特殊意义的单词。

Java关键字的特点?

英文字母,全部小写。

在高级开发工具中,关键字会有特殊的颜色标记。

Java中的关键字

Goto和const是java中的预留关键字。

 

关键字的作用是什么?

在java程序中有着特殊含义的单词称作为关键字。 比如: class 定义类 public 公共的,所有人都可以访问。

 

学习关键字的方法?

千万不要死记硬背, 后期的程序会慢慢接触到每一个关键字,然后知道关键字的作用即可。

 

——–08——–

常量

什么是常量?

在程序运行过程中,其【值不可以发生改变】的量。

 

常量的分类

a字符串常量:使用双引号 “” 括起来的0到多个字符。 “java” , “” , ”  ” , “A”

b字符常量:使用单引号 ” 括起来的【单个】字符。 ‘A’ , ‘0’ ,’我’

c整数常量:正负整数  10  -20

d小数常量:带小数点的数字  -3.14   5.12

e布尔常量:表示真或假,只有true或false两个值。

f空常量:值为null,不能使用输出语句直接输出。

 

代码

  Public class constantdemo{

Public static void main(String[] args){

//字符串常量

System.out.println(“”);

System.out.println(” “);

System.out.println(“1”);

System.out.println(“字符串常量”);

System.out.println(“—————“);

 

//字符常量(字符常量只能是单个字符,不能多个,也不能没有)

System.out.println(‘1’);

System.out.println(‘A’);

System.out.println(‘中’);

//System.out.println(’10’); 引发编译错误

//System.out.println(”);  引发编译错误

System.out.println(‘ ‘);

System.out.println(“—————“);

 

//布尔常量

System.out.println(true);

System.out.println(false);

System.out.println(10>20); //fasle

 

//空常量 null 不能直接输出

//System.out.println(null);   引发编译错误

}

}:

 

  ——–小结——–

 

什么是常量?

a在程序运行过程中其值不能改变的量称作为常量。

 

常量的类型?

字符串常量 “”双引号引起来

 

整数常量 比如: 123

 

小数常量: 比如: 3.14

 

字符常量 是使用单引号括起来的, 并且只能出现一个字符。 比如: ‘a’

 

布尔常量 只有两个值,真(true)与假 (false)

 

Null常量 学习到对象的时候才会去使用的。

 

——–09——–

数据类型

Java数据类型分类?

基本数据类型:4型8种

引用数据类型:字符串,数组,类,接口 ,null

 

使用注意·

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

定义long类型的数据的时候,需要加 L 或 l,建议加L。

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

 

【练习题】下面哪些是Java中的基本数据类型?(A,D,E)

A byte

B Byte

C String  //字符串

D char

E long

 

——–小结——–

数据类型的作用?

用于申请内存空间的。 开辟对应的内存空间。

 

Java中基本数据类型的四型八种是哪个?

整数

Byte 1个字节

Short 2个字节

Int 4个字节

Long 8个字节

 

小数

Float 4个字节

Double 8个字节

 

字符

Char 2个字节

 

布尔

Boolean 1个字节

 

——–10——–

变量

 

什么是变量?

变量指程序运行过程中,其值在【一定范围内】会发生【变化】的量。

 

变量的定义格式?

数据类型 变量名 = 初始化值;

 

Int a = 10;

Double d = 12.5;

 

变量使用的注意事项?

变量可以定义时初始化,也可以先定义,使用前进行初始化。

 

Int a = 10;

Int b;

B =20;

System.out.println(b);

 

没有初始化的变量不能直接使用。

Int a;

System.out.println(a); //此处会报错,变量没有初始前不能直接使用

 

相同{}范围内,变量名不能重复。

Int  a  =10;

A = 20;  //重新赋值

Int a = 20; //变量名重复,会编译报错

 

整数常量默认是int类型,定义long类型常量时需要加 L 或者l,建议加L。

Long b = 10000000000;  //超出intd的范围,会编译报错,改成下面的方式,加L

Long b = 10000000000L;

Long  a = 10L;

 

小数默认是double类型,定义float类型的时候需要在数字后面加F或者f,建议加F。

Float  f  = 3.14;  //此处会编译报错,因为小数默认是double类型。

Float  f  = 3.14F;

 

一行代码上可以定义多个变量。(不推荐)

Int a=10,b=20;

 

变量的基本格式定义

/*

变量定义格式:

数据类型 变量名 = 变量值;

 

基本数据类型:

Byte,short,int,long,float,double,char,boolean

 

变量的使用:

取值格式:变量名

 

修改值格式:变量名 = 变量值;

*/

Public class variabledemo01 {

Public static void main(String[] args) {

//定义变量

Int a = 10;

//输出变量

System.out.println(a);

 

//修改变量

A = 20;

System.out.println(a);

}

}

变量要注意的事项

/*

变量使用的注意事项:

名字不能重复

变量未赋值,不能使用

Long类型的变量定义的时候,为了防止整数过大,后面要加L

Float类型的变量定义的时候,为了防止类型不兼容,后面要加F

*/

Public class variabledemo02 {

Public static void main(String[] args) {

//定义byte类型的变量

Byte b = 10;

System.out.println(b);

 

//定义short类型的变量

Short s = 100;

System.out.println(s);

 

//定义int类型的变量

Int i = 10000;

System.out.println(i);

 

//定义double类型的变量

Double d = 13.14;

System.out.println(d);

 

//定义char类型的变量

Char c = ‘a’;

System.out.println(c);

 

//定义boolean类型的变量

//boolean b = true;

//System.out.println(b);

Boolean bb = true;

System.out.println(bb);

System.out.println(“——–“);

 

//定义long类型的变量

Long l = 10000000000L;

System.out.println(l);

System.out.println(“——–“);

 

//定义float类型的变量

Float f = 13.14F;

System.out.println(f);

}

}

 

——–小结——–

变量的作用?

变量的作用就是向jvm申请对应的内存空间存储数据,在程序运行过程中其值可以发生改变。

 

变量的定义格式?

数据类型 变量名 = 数据;

 

==注意:以后我们存储数据的时候该如何选择数据类型呢?==

先明确你当前存储的数据是什么类型。

然后再根据对应的范围大小去选择。 但是这点是理论。 在实际开发中基本如果是i整数统一都使用int类型,如果是小数我们都使用double类型。

 

变量在使用的时候注意的事项?

变量名不能重复

变量在使用之前必须要赋值

整数默认是int类型,如果需要表示为long类型需要在后面加上L或者l。

小数默认是double类型,如果需要表示为float类型,需要在后面添加F或者f。

 

——–11——–

标识符

 

标识符的作用?

给包,类,方法,变量起名的符号。

 

标识符的组成规则?

==英文大小写字母,数字0~9 , 下划线_ ,美元符$ ,中文==

 

注意:

不能数字开头

不能是关键字

标识符的命名规范?

小驼峰式命名:变量名、方法名

第一个单词首字母小写,从第二个单词开始每个单词的首字母大写。

Username,maxvalue等

 

大驼峰式命名:类名

每个单词的首字母都大写。

String, arraylist等

建议:标识符的起名尽量做到见名知意。

 

——–小结——–

a1标识符的作用?

a2标识符就是指在java程序中由我们自定义名字的则称作为标识符。 比如: 类名

a3标识符的组成规则?

标识符的组成元素: 字符(a-za-Z,汉字可以)、数字、下划线(_)、美元符号($)

数字不能开头

不能是关键字

 

a4标识符的命名规范?

大驼峰命名规范: 所有单词的首字母大写,其他小写。 比如: helloworld 。主要用于类名、接口名

小驼峰命名规范:首单词全部小写,其他单词的首字符大写,其他小写。 比如: lasttime. 主要用于方法名、变量名

 

【练习题】下列不可作为java语言变量名的是( )

a1

B、$1

C、_1

D、5a   //不可以 ,数字开头

E、num@   //不可以, @符号不是标识符的组成元素

F、class   //不可以,因为class是关键字

G、String   //可以, 但是不推荐, 因为String是字符串所使用类型。

 

——–12——–

类型转换

 

隐式类型转换(自动类型转换)

==小类型变量==赋值给==大类型变量==,小类型会自动进行提升为大类型。

Byte、short、char —> int —> long —> float —> double

 

【笔试题】指出下面一段代码中有问题的代码行号()

byte b = 10; short s = 20;

short s2 = b + s;

short s3 = s + 5;

short s4 = 10 + 20;

float f = 10 + 1.0;

double d = 10 + 1.0F;

 

强制类型转换

从==范围大==的类型到==范围小==的类型的转换,需要进行强制类型转换。

格式:

==目标数据类型 变量名 = (目标数据类型) 值或变量;==

Int a =10;

Byte b = (byte)a;

System.out.println(b); //10

Int aa = (int)88.88;

System.out.println(aa); //88

弊端:

==强制转换可能会造成数据精度丢失

/*

类型转换

*/

Public class conversiondemo {

Public static void main(String[] args) {

//自动类型转换

Double d = 10;

System.out.println(d);

 

//定义byte类型的变量

Byte b = 10;

Short s = b;

Int i = b;

 

//这是不可以的,类型不兼容

//char c = b;

 

//强制类型转换

Int k = (int)88.88;

System.out.println(k);

}

}

 

——–小结——–

为什么要进行数据类型转换?

Java这么语言是不允许不同类型的数据在一起运算,这种需求在实际中是经常发生的。在运算的时候让这些数据转换为同一种数据类型。

 

数据类型转换有哪些类型?

自动类型转换 小数据类型向大数据类型

 

强制类型转换 大数据类型—小数据类型

 

强制类型转换可能会出现什么问题?

丢失精度。丢失数据

 

//最后一题啦

 

【笔试单选题】以下关于数据类型的转换,说法错误的是( )

A:int a = 1; byte b = 1; System.out.println(a+b); 程序不会报错并且打印2  不会

B:int类型的数据转为double类型,需要强制转换。  //不需要  小–大  自动类型转换

C:int类型转成short砍掉2个字节,可能造成数据丢失。

D:short h = 1; h=h+1; 需要使用强制转换才能编译成功。

 

                              ——–以上内容如果有错误 请尽情怼我!!!——–

                              谢谢

相关文章