Java概述,Java语法
Java基础知识
Java版本
JavaSE(标准版)
是为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。
JavaEE(企业版)
是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发
JavaEE(企业版)
是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发
JavaME(小型版)
是为开发电子消费产品和嵌入式设备提供的解决方案
Java原理
跨平台原理
平台:指的是操作系统(Windows,Linux,Mac)
跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行
原理:实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine)
JVM JRE JDK
JVM
JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台
JRE
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JRE:JVM+类库。
JDK
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等
JDK:JRE+JAVA的开发工具。
Java语法
注释
(1)注释的作用 – a:解释说明程序;b:帮助我们调试错误
(2)Java中注释分类
单行注释:–格式: //注释文字
多行注释:–格式: /* 注释文字 /
文档注释:–格式:/* 注释文字 */
package com.itheima;
/*
* 注释:用于解释说明程序的文字
*
* 分类:
* 单行
* 多行
*
* 作用:解释说明程序,提高程序的阅读性。
*/
//这是我的HelloWorld案例,class用于定义类。
public class HelloWorld {
/*
* 这是main方法
* main方法是程序的入口方法
* 所有程序的执行都是从main方法开始的
*/
public static void main(String[] args) {
//这是输出语句。
System.out.println("我是黑马程序员,我骄傲,我自豪");
}
}
关键字
关键字概述
被Java语言赋予特定含义的单词
关键字特点
(1)组成关键字的字母全部小写
(2)常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观,所以我们不需要去死记硬背,在今后的学习中重要的关键字也会不断的出来。
package com.itheima;
/*
* 内容辅助键:alt+/
* main方法:main,然后alt+/,回车
* 输出语句:syso,然后alt+/,回车
*
* 关键字:被Java语言赋予了特定含义的单词。
*
* 特点:
* A:组成关键字的字母全部小写
* B:常见的代码编辑器,对关键字有特殊的颜色标记
*/
public class KeyWordDemo {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
关键字举例
常量
常量概述
在程序执行的过程中,其值不可以发生改变的量
常量分类
(1)字符串常量 用双引号括起来的内容(“HelloWorld”)
(2)整数常量 所有整数(12,-23)
(3)小数常量 所有小数(12.34)
(4)字符常量 用单引号括起来的内容(‘a’,’A’,’0’)
(5)布尔常量 较为特有,只有true和false
(6)空常量 null(数组部分讲解)
/*
常量:在程序执行的过程中,其值不可以发生改变的量
常量分类:
A:字符串常量 "HelloWorld"
B:整数常量 12,-23
C:小数常量 12.34
D:字符常量 'a','0'
E:布尔常量 true,false
F:空常量 null(后面讲解)
*/
public class ChangLiang {
public static void main(String[] args) {
//字符串常量
System.out.println("HelloWorld");
//整数常量
System.out.println(12);
System.out.println(-23);
//小数常量
System.out.println(12.34);
//字符常量
System.out.println('a');
System.out.println('0');
//布尔常量
System.out.println(true);
System.out.println(false);
}
}
变量
变量概述
在程序执行的过程中,在某个范围内其值可以发生改变的量
从本质上讲,变量其实是内存中的一小块区域
变量定义格式
数据类型 变量名 = 初始化值;
注意:格式是固定的,记住格式,以不变应万变
变量图解
数据类型
计算机存储单元
计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B表示,字节是由连续的8个位组成。
–1B(字节) = 8bit
–1KB = 1024B
–1MB = 1024KB
–1GB = 1024MB
–1TB = 1024GB
数据类型概述和分类
(1)数据类型的概念
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间
(2)Java中数据类型的分类
基本数据类型
引用数据类型
面向对象部分讲解
基本数据类型(4类8种)
标识符
标识符概述
(1)作用:给包,类,方法,变量等起名字
(2)组成规则:由字符,下划线_,美元符$组成
PS: 这里的字符采用的是unicode字符集,所以包括英文大小写字母,中文字符,数字字符等。
(3)注意事项:
–不能以数字开头
–不能是Java中的关键字
(4)命名原则:见名知意
a包
最好是域名倒过来,要求所有的字母小写
b类或者接口
如果是一个单词首字母大写
如果是多个单词每个单词首字母大写(驼峰标识)
c方法或者变量
如果是一个单词全部小写
如果是多个单词,从第二个单词首字母大写
d常量
如果是一个单词,所有字母大写
如果是多个单词,所有的单词大写,用下划线区分每个单词
package com.itheima;
/*
* 标识符:就是用来给包,类,变量,方法等起名字的符号。
*
* 组成规则:
* A:unicode字符
* 数字字符,英文大小写字母,汉字(不建议使用汉字)
* B:下划线_
* C:美元符$
*
* 注意事项:
* A:不能以数字开头
* B:不能是java中的关键字
*/
public class IdentifierDemo {
public static void main(String[] args) {
//数据类型 变量名 = 初始化值;
int age = 20;
//不能以数字开头
//正确写法
//int b2 = 30;
//错误写法
//int 2b = 30;
//不能是java中的关键字
//int class = 40;
}
}
定义变量
基本数据类型变量的定义和使用
变量的定义格式:
数据类型 变量名 = 初始化值;
基本数据类型:
byte,short,int,long,float,double,char,boolean
注意:
整数默认是int类型,定义long类型的数据时,要在数据后面加L。
浮点数默认是double类型,定义float类型的数据时,要在数据后面加F。
package com.itheima;
/*
* 变量的定义格式:
* 数据类型 变量名 = 初始化值;
*
* 基本数据类型:
* byte,short,int,long,float,double,char,boolean
*
* 注意事项:
* A:整数默认是int类型,定义long类型变量的时候,建议加L或l。
* B:浮点数默认是double类型,定义float类型变量的时候,建议加F或f。
*/
public class VariableDemo {
public static void main(String[] args) {
//byte类型的变量
byte b = 10;
System.out.println(10);
System.out.println(b);
//short类型的变量
short s = 100;
System.out.println(s);
//int类型的变量
int i = 1000;
System.out.println(i);
//long类型的变量
//long l = 10000;
//System.out.println(l);
long l = 10000000000L;
System.out.println(l);
//float类型的变量
float f = 12.34F;
System.out.println(f);
//double类型的变量
double d = 12.34;
System.out.println(d);
//char类型的变量
char ch = 'a';
System.out.println(ch);
//boolean类型的变量
boolean bb = true;
System.out.println(bb);
}
} //定义boolean类型的变量
boolean bb = false;
System.out.println(bb);
}
}
变量定义的注意事项
(1) 变量未赋值,不能直接使用 – 引出变量的第二种使用格式
(2)变量只在它所属的范围内有效 – 变量在哪对大括号内,变量就属于哪对大括号
(3)一行上可以定义多个变量,但是不建议
package com.itheima;
/*
* 变量的注意事项:
* A:变量未赋值,不能直接使用
* B:变量只在它所属的范围内有效
* 变量属于它所在的那对大括号
* C:一行上可以定义多个变量,但是不建议
*/
public class VariableDemo2 {
public static void main(String[] args) {
//定义一个变量
int a = 10;
System.out.println(a);
int b;
b = 20;
System.out.println(b);
{
//代码块
int c = 30;
System.out.println(c);
}
//System.out.println(c);
System.out.println(b);
/*
int aa,bb;
aa = 10;
bb = 20;
System.out.println(aa);
System.out.println(bb);
*/
int aa = 10;
int bb = 20;
System.out.println(aa);
System.out.println(bb);
}
}
数据类型转换
隐式数据类型转换
取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
package com.itheima;
/*
* +:做加法的符号。
*
* 类型转换:
* 隐式转换
* 强制转换
*
* 隐式转换:
* byte,short,char -- int -- long -- float -- double
*
* boolean类型不参与这样的运算。
*/
public class ConversionDemo {
public static void main(String[] args) {
//定义两个int类型的变量
int a = 10;
int b = 20;
System.out.println(a+b);
//我可以把a+b的结果进行输出,说明这个计算的结果是没有问题的
//那么,我应该也可以把这个结果接收一下。
int c = a + b;
System.out.println(c);
System.out.println("-----------------");
//定义两个变量,一个int类型,一个byte类型
int aa = 10;
byte bb = 20;
System.out.println(aa+bb);
//下面这种写法报错了
//byte cc = aa+bb;
int cc = aa + bb;
System.out.println(cc);
}
}
强制类型数据转换
(1)强制转换的格式
目标类型 变量名=(目标类型)(被转换的数据);
强制转换的注意事项
(2)如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
package com.itheima;
/*
* 强制转换:
* 目标类型 变量名= (目标类型)(被转换的数据);
*
* 虽然可以做强制转换,但是不建议。因为强制转换可能会有数据的丢失。
*/
public class ConversionDemo2 {
public static void main(String[] args) {
//定义两个变量,一个int类型,一个byte类型
int a = 10;
byte b = 20;
int c = a + b;
System.out.println(c);
byte d = 30;
byte e = (byte)(a + b);
System.out.println(e);
}
}