1.1java语言概述
1.JDK,JRE,JVM三者之间的关系是什么?以及JDK和JRE分别包含的主要结构有那些?
JDK = JRE + JAVA的开发工具(javac.exe,java.exe,javadoc.exe)
JRD = JVM + JAVA核心类库
2.为什么要配置path环境变量?如何配置?
JAVA_HOME = java安装目录中bin的上一层目录
path = %JAVA_HOME%\bin
3.常用的几个命令行操作有哪些?
md创建
rd删除
del删文件
cd..退回上一层
cd/退回根目录
4.创建如下的类,使得运行可以输出
创建java文件:ChairMan.java
public class ChairMan{ public static void main(String[] args){ System.out.println("姓名:Freda");// **加//是换行的意思** System.out.println(); System.out.println("性别:女"); } }
编译和运行:
javac ChairMan.java(和文件名一样)
java ChairMan(和public的类名一样)
5.常识:
- 软件:一些列按照特定顺序组织的计算机数据和指令的集合,分为系统软件:windows,mac;应用软件:word
- 人机交互方式:图形化界面 、 命令行方式
- 应用程序 = 算法 + 数据结构
- 计算机发展史:
第一代:机器语言
第二代:汇编语言
第三代:高级语言
<面向过程:C,
<面向对象:JAVA,ES6,Python - JAVA语言应用的领域:
<JAVA WEB开发:后台开发
<大数据开发
<Android应用程序开发:客户端开发 - JAVA语言特点
<面向对象性:
两个要素:类、对象
三个特征:封装、继承、多态
<健壮性:去除了C语言中的指针、自动的垃圾回收机制,但仍然会出现内存泄漏和溢出
<跨平台性:write once, run anywhere:一次编译,到处运行---->功劳归功于JVM1.2 java基本语法
1.标识符的使用
1)标识符:自己起名字的地方都叫标识符
比如:类名、变量名、方法名、接口名、包名等……
2)标识符的命名规则:
- 英文字母大小写,0-9,_或$
- 数字不能开头
- 区分大小写,不包含空格
- 不能是关键字(专门意义、小写)或保留字(goto,const)
3)JAVA中的名称命名规范:(不遵守也能通过)
包名:多单词组成时所有字母小写
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
常量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
2.变量
1)变量的定义:数据类型 变量名 = 变量值
2)说明
- 变量要先声明后使用
- 变量要定义在作用域内,作用域{}内才有效
3.数据类型
1)基本数据类型
- 整型:byte(1字节=8bit,范围:-128-127) \ short(2字节) \ int(4字节) \long(8字节)
- 浮点型: 单精度float(4字节) \ 双精度double(8字节)
- 字符型: char(1字符 = 2字节)
- 布尔型: boolean
2)引用数据类型: - 类(class)
- 接口(interface)
- 数组(array)
3)表示形式
整型: - 声明long型变量,必须以1或L结尾
long l1 = 34343249247L; - 最常用int
浮点型: - 声明float变量,变量要以f或F结尾
float f1 = 12.3F - 通常使用double类型
字符型: - 定义char型变量,通常使用一堆''
char c1 = 'a'; char c2 = '中' System.out.println(c1); System.out.println(c2);
- 表示方式:1、声明一个字符 2、转义字符3、直接使用Unicode值来表示字符型常量
char c3 = '\n';//换行符 char c4 = '\t';//制表符(tab) System.out.print("hi" + c3);//print就是不换行 System.out.println("world"); char c5 = '\u00434'; System.out.println(c5);//C
布尔型:
boolean getted = true;
if(getted){
Systemout.println("已经获取"消息"了")
3)数据类型的相互运算
自动类型提升:
当容量小的数据类型的变量和容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte、chart、short --> int --> long --> float --> double - 特别的:当byte、chart、short三种类型做运算(包括和同类型做运算),结果都必须是int型*
byte b1 = 2; int i1 = 129; int i2 = b1 + i1; long l1 = b1 + i1; float f = b1 + i1;//131.0
char c1 = 'a';//97 int i3 = 10; int i4 = c1 + i3; System.out.println(i4);//107
强制类型转换:自动类型提升运算的逆运算:强转符+精度损失claa VariableTest { public static void main(String[] args) {
double d1 = 12.9;
int i1 = (int)d1;//截断操作(损失精度)
System.out.println(i1);
//没有精度损失
long l1 = 123
short s2 = (short)l1;
//精度损失
int i2 = 128;
byte b = (byte)i2;
System.out.println(b);//-128
注意点: 1.编码情况: long l = 123123;//结尾没l(123123L),没报错,是因为自动转成int了 long l1 = 12312423423434;//报错,过大的整数,要加L float f1 = 12.3F;//一定要加,大的float不能往小的double转 2.//整型常量,默认类型为int型 //浮点型常量:默认类型为double型 byte b =12; byte b1 = b+1;//报错 byte b2 = b+12.3;//报错 4)String类型变量的使用 1.String属于引用数据类型,翻译为:字符串 2.声明String类型变量时,使用一对"" 3.String可以和8种基本数据类型(包括布尔)变量做运算,且运算只能是连接运算(拼接):+ 4.运算结果仍然是String类型 //练习1 char c = 'a';//97 int num = 10; String str = 'Hello'; System.outprintln(c + num + str);//107Hello System.outprintln(c + str + num );//aHello10 //练习2 System.outprintln('*' + '\t' + '*');//93-->''里面是char,做运算对应一个ascma值 System.outprintln('*' + "\t" + '*');//* *-->""里面是String
(5)进制
所有数字在计算机底层都以二进制形式存在。
对于整数,有四种表示方式:
二进制(binary):0,1 ,满2进1.以0b或0B开头。
十进制(decimal):0-9 ,满10进1。
八进制(octal):0-7 ,满8进1. 以数字0开头表示。
十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。如:0x21AF +1= 0X21B0
class BinaryTest{ public static void main(String[] args){ int num1 = 0b110; int num2 = 110; int num3 = 0127; int num4 = 0x110A; System.out.println("num1 = " + num1); System.out.println("num2 = " + num2); System.out.println("num3 = " + num3); System.out.println("num4 = " + num4); } } 最后输出都为十进制
练习题【数组】
int[] arr = new int[4];//动态初始化 Sring[] arr1 = new String[]{'tom','jerry','jim'};//静态初始化 or Sring[] arr1 = {'tom','jerry','jim'};//静态初始化 二维数组: int[][] arr = new int[4][3];//动态初始化 int[][] arr1 = new int[5][];//动态初始化 int[][] arr3 = new int[][]{{1,2,3},{1,2},{4,5}};//静态初始化 不同类型的以为数组元素的默认初始化值: 整数型:0 浮点型:0.0 char:0 boolean:false 引用数据类型:null 生成随机数:[10,99] int[] arr = new int[10[; for (int i = 0li<arr.length; i++){ arr[i] = (int)(Math.random() * (99 - 10 +1) +10); }
class Student{ int numnber; int