目录
一、Java语言概述
1.JDK,JRE,JVM三者之间的关系,以及JDK,JRE包含的主要结构有哪些?
JDK包含JRE包含JVM
JDK=JRE+Java的开发工具(java.exe,java.exe,javadoc.exe)
JRE=JVM+java核心类库
2.为什么配置path环境变量?如何配置
为了在任何的文件路径下都能执行Java的开发工具和Java指令
建立一个JAVA_HOME的变量,变量里面存储bin的上一层目录:JAVA_HOME=bin的上一层目录
path里面动态调用JAVA_HOME:path=%JAVA_HOME%\bin
3.常用的几个命令操作都有哪些?(至少四个)
cd
md:创建文件目录
rd:删除目录
del:删除文件
cd..
cd/
4如何创建如下的类,使得运行的话可以输出:
姓名:*****
性别:男
家庭住址:****
创建一个.java文件:First.java
public class First{
public static void main(String[] args){
System.out.println("姓名:*****");//“”之内写字符串
System.out.println();
System.out.println("性别:男");
System.out.println("家庭住址:****\n");
}
}
5.编译和运行上述代码的指令
编译:javac First.java
运行:java First
二、基本语法
1.关键字与标识符
- 标识符的命名规则有哪些? -->不遵守,编译不通过。
Ø由26个英文字母大小写,0-9 ,_或 $ 组成
Ø数字不可以开头。
Ø不可以使用关键字和保留字,但能包含关键字和保留字。
ØJava中严格区分大小写,长度无限制。
Ø标识符不能包含空格。
2. 标识符的命名规范有哪些?-->不遵守,编译运行都可以通过
包名:xxxyyyzzz
类名、接口名:XxxYyyZzz
变量名、方法名:xxxYyyZzz
常量名:XXX_YYY_ZZZ
2.变量的使用
1. Java变量按照数据类型怎么划分?并指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小
Byte short int long
byte(1字节=8bit)\short(2字节)\int(4字节)\long(8字节)
Char 2字节
Float4个 double8个
Boolean
引用数据类型:类、接口、数组
2. 说明基本数据类型变量之间自动类型提升的运算规则。
byte、short、char -àint àlong àfloat àdouble
3. 说明基本数据类型变量之间强制类型转换的使用规则和强转可能出现的问题。
容量大 ->容量小
使用强转符:()
精度损失。
4.判断下列是否正确:
String str1 = 4; //判断对错:no 原因:String str1="4";
public class StringTest {
public static void main(String[] args) {
int no = 10;
String str = "abcdef";
String str1 = str + "xyz" + no;
str1 = str1 + "123";
char c = '国';
double pi = 3.1416;
str1 = str1 + pi;
boolean b = false;
str1 = str1 + b;
str1 = str1 + c;
System.out.println("str1 = " + str1);//str1 = abcdefxyz101233.1416false国
}
}
6.判断是否能通过编译
运算时自动类型提升,故1),4)错误
3.运算符
1.算术运算符:自加、自减
/*
练习题1.:
输出i=10 i1=11
1=12 i1=12
i=20 i2=19
i=18 i2=18
*/
class SignTest{
public static void main(String[] args){
int i1 = 10;
int i2 = 20;
int i = i1++;
System.out.print("i="+i);
System.out.println("i1="+i1);
i = ++i1;
System.out.print("i="+i);
System.out.println("i1="+i1);
i = i2--;
System.out.print("i="+i);
System.out.println("i2="+i2);
i = --i2;
System.out.print("i="+i);
System.out.println("i2="+i2);
}
}
2.练习2
随意给出一个整数,打印显示它的个位数,十位数,百位数的值。
格式如下:
数字xxx的情况如下:
个位数:
十位数:
百位数:
例如:
数字153的情况如下:
个位数:3
十位数:5
百位数:1
System.out.println("----------练习2-----------------");
int num=153;
int hundreds=num/100;
int tens=num%100/10;
int ones=num%10;
/*
int hundreds=num/100;
int tens=num/10%10;
int ones=num%10;
*/
System.out.println("个位数是:"+num%10);//String类型进行连接运算时,遵循基本运算法则
System.out.println("十位数是:"+tens);
System.out.println("百位数是:"+hundreds);
3.如何判断奇偶性
System.out.println("--------如何判断寄偶性----------");
if(num%2==0){
System.out.println("是偶数");
}if(num%2==1){
System.out.println("是奇数");
}
System.out.println("---------------------------------");
4.赋值运算符
/*----------------练习------------------------*/
System.out.println("----------练习----------------");
/*
思考一:①自动类型转换,编译错误
②不会改变变量的数据类型
*/
//思考二
int i = 1;
i *= 0.1;//不改变变量本身的数据类型
System.out.println(i);//0
i++;
System.out.println(i);//1
//思考三
int m = 2;
int n = 3;
n *= m++; //n=n*m++
System.out.println("m=" + m);//3
System.out.println("n=" + n);//6
/*
思考四
int n=10;n+=(n++)+(++n)结果是多少?
n+=(n++)+(++n)--->n=n+(n++)+(++n)--->10+10+12
n+(n++)-->10+10,n++,n由10自+1变为11
(++n),n变为了11,(++n)为12
若,直接输出n +=n++,n=20,n+n=20运算结束将值赋值给n,n++=11不会再进行赋值;
若,n+(n++)+(++n),在运算n+(n++)时,运算没有结束,n++进行运算将值赋给n;
n += (n++) + (++n)相当于:
int n1=n+n;//先运算
n++;//在自增1
++n;//先自增1
n=n1+n;//在运算
*/
int n1 = 10;
n1 += (n1++) + (++n1);//n=n+(n++)+(++n)--->10+10+12
/*int n2=n1+n1;
n1++;
++n1;
n1=n2+n1;
*/
System.out.println(n1);//32
5.写出下列的运行结果:
6.【面试题】程序输出:
System.out.println("-------------练习题:z= ----------------");
boolean x=true;
boolean y=false;
short z=42;
//if(y == true)
if((z++==42)&&(y=true))z++;//y=true为赋值运算,y的值变为true;区分“==”与“=”
if((x=false) || (++z==45)) z++;
System.out.println("z="+z);//46