一、关键字、保留字、标识符
关键字(keyword)
java语言被赋予了特殊含义的字符串,有专门的用途
官网:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_key
保留字(reserved word)
现有的java版本中尚未使用,但以后可能 使用的关键字
goto、const
标识符(identifier)
其实就是起的名字, 对我们使用的变量,类,方法等等
- 由26个英文字母大小写,0-9、 _、或$
- 数字不能开头
- 不可以使用关键字和保留字,但可以包含关键字和保留字
- java中严格区分大小写,长度无限制标识符不能包含空格
标识符规则(命名规则) — 必须遵守,否则报错
命名规范 — 约定俗称,建议遵守
- 包名:多个单词组成时所有字母 小写(例如: net.csdn.boss.dao)
- 类名,接口名:多个单词组成 时,所有单词首字母大小(例如: EmpService)
- 变量名、方法名:多个单词组成 时,第一个单词首字母小写,从 第二个开始每个单词首字
母大写 (例如:userName, passWord) - 常量名:所有字母大写,多个单词每个单词使用下划线连接(例 如:SEX_MALE、
SEX_FEMALE)
二、变量、数据类型
2.1、变量-
变量:
用来临时保存数据,是内存空间的一个区域的表示。数据不同,变量类型不同。类似于不同的罐子存储不同的东西。
2.2、常用的数据类型
2.2.1数据类型分类
java中对于每一种数据都定义了明确的具体的数 据类型(强类型语言),在内存中分配了大小不 同的内存空间
基本类型数据—直接存储信息
数值类型:
整数:byte(字节)、short(短整型)、int(整型*)、long(长整型)
浮点数:
double(双精度*):精度是float的2倍(常用)
float(单精度):尾数可以精确到7位数
java种常用默认用double 声明时常量必须添加F 或者f;
非数值类
char(字符)----char类型是可以进行运算的,因为都对应的Unicode码
表现的形式:
引号括起来的单个字符(‘’)例如:charc = ‘a’ char sex = ‘缴男’
java中还允许使用转义字符“\”,字符转变为特殊的字符常量:例如:char c = ‘\n’换 行
直接使用unicode值 例如:’\uXXXX’ .XXXX代表十六进制整数例如: ‘\u000a’表示
\n
三种编码方式:
ASCII:8个二进制位,256中状态,一个 字节(byte)每个状态对应一个符号,就是256个符号,从00000000到 11111111,ACII码一共规定了128个字 符,因为只占用了7位,最前面的1位统 一规定为0 。
Unicode:将世界上所有的字符都纳入其 中,unicode统一规定,每个符号用三个或四个字节表示 。
UTF-8使用中可变长度的编码方式,可以 使用1-6个字节表示一个符号,根据符号 不同而变化字节长度,可动态提高效率,使用较多。
boolean(布尔类型*)
引用型数据类型---间接存储信息---变量保存真实数据的地址,通过地 址间接获取数据
class(类) ---- string在这里
Interface(接口)
Array(数组)
.2.3变量使用的步骤
1&2:声明、赋值、使用
package BaseDemo;
public class TestDemo01 {
public static void main(String[] args) {
int i;//声明
i = 10;//赋值
System.out.println(i);//使用
}
}
/*问题:
输出java课程考试最高成绩:98.5
输出最高分学员姓名:张三
输出最高分性别:男
分析:
1、输出数据需要变量存储,需要选择变量的个数和数据类型
2、根据题意:
成绩(score):double
姓名(name):string
性别(sex):char
3、实现
*/
package BaseDemo;
/*** 问题:
*输出java课程考试最高成绩:98.5
*输出最高分学员姓名:张三
*输出最高分性别:男
* @author Administrator
* */
*public class TestDemo01 {
public static void main(String[] args) {
/** 分析:1、输出数据需要变量存储,需要选择变量的个数和数据类型
2、根据题意: 成绩(score):double
姓名(name):string
性别(sex):char
*/
double score = 98.5;
String name = "张三";
char sex = '男';
System.out.println("java课程考试最高成绩" + score);
System.out.println("最高分学员的姓名:" + name);
System.out.println("最高分学院的性别:" + sex);
}
}
三、赋值运算符&算数运算符
/*问题:
-学员王浩的Java成绩是80分,学员张萌的Java成绩与王浩的相同,输出张萌的成绩
分析:
变量2个,数据类型一个 int,赋值。
**/
package BaseDemo; public class TestDemo03 {
public static void main(String[] args) {
int wScore = 80;
int zScore = wScore;
System.out.println("张萌的成绩为:" + zScore);
}
}
算数运算符:
基本算数运算符:+ - * / %(取余)
+:对于字符串来说是连接,对于数值类型来说是运算符号
/*
问题:
从控制台输入学员王浩3门课程成绩,编写程序实现
(1)Java课和SQL课的分数之差
(2)3门课的平均分
分析:
1、3门课程---3个变量
2、从控制台输入数据 ---Scanner
3、求平均分以及分数差 在需要2个变量
*/
package net.csdn.Demo1;
import java.util.Scanner;
/**从控制台输入学员王浩3门课程成绩,编写程序实现
*(1)Java课和SQL课的分数之差 STB
*(2)3门课的平均分
*/
public class ClassExer030401 {
public static void main(String[] args) {
//1.通过Scanner 录入成绩
Scanner sc = new Scanner(System.in);
System.out.println("请输入学员王浩的STB的成绩:");
int stbScore = sc.nextInt();
System.out.println("请输入学员王浩的Java的成绩:");
int javaScore = sc.nextInt();
System.out.println("请输入学员王浩的SQL的成绩:");
int sqlScore = sc.nextInt(); //2.输出成绩
System.out.println("STB的成绩是:" + stbScore);
System.out.println("Java的成绩是:" + javaScore);
System.out.println("SQL的成绩是:" + sqlScore);
System.out.println("-----------------------");
System.out.println("STB\t\t" + "Java\t" + "SQL");
System.out.println(stbScore+ "\t \t" + javaScore + "\t\t" +
sqlScore );
System.out.println("-----------------------");
//3.输出java和sql的成绩差 用if判断 以免输出为负数
int different;
if(javaScore >= sqlScore){
different = javaScore - sqlScore;
System.out.println("Java和SQL的成绩差为:" + different);
}else if (javaScore < sqlScore){ different = sqlScore - javaScore;
System.out.println("Java和SQL的成绩差为:" + different);
}else{
System.out.println("请输入合法的数据哦"); }
//4.得到平均分并输出
double avg = (javaScore + sqlScore + stbScore)/3.0;
System.out.println("3门课程的平均分为:" + avg);
//关闭资源,解除占用资源
sc.close();
}
}
/*
*根据天数(46)计算周数和剩余的天
*/
package BaseDemo;
import java.util.Scanner;
/*** 根据天数(46)计算周数和剩余的天数
*
* @author Administrator
*
*
*/
public class BaseDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入天数:");
//控制台输入数据
int days = sc.nextInt();
int week = days/7;//得到有多少周 用商
int remaindays = days%7;//得到剩余天数 取余
System.out.println(days+ "天一共有"+ week + "周加" + remaindays +"天");
int days = 46;
int week = days/7;//得到有多少周 用商
int remaindays = days%7;//得到剩余天数 取余
System.out.println(days+ "天一共有"+ week + "周加" + remaindays +"天");
}
}
/*
已知圆的半径radius= 1.5,求其面积
*/
package BaseDemo;
import java.util.Scanner;
/*** 已知圆的半径radius= 1.5,求其面积
* 输入圆的半径 求面积 周长
*
* @author Administrator
**/ public class BaseDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入圆的半径:");
double radius = sc.nextDouble();
double pi = 3.14;
double area = radius*radius*pi;
double girth = 2*radius*pi;
System.out.println("半径为" + radius + "的面积为:" + area + ",周长为:" + girth );
double radius = 1.5;//半径
double pi = 3.14;//圆周率Math.PI
double area = radius * radius * pi;//面积
double girth = 2 * radius * pi;//周长
System.out.println("半径为" + radius + "的面积为:" + area + ",周长为:" + girth );
}
}
package BaseDemo;
import java.util.Scanner;
/***
需求:作业一:为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时
* @author Administrator *
* */
*public class HomeworkDemo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int days =sc.nextInt();//通过键盘录入 得到作战时间
int day = days/24;//得到作战天数
int hours = days%24;
System.out.println("为抵抗洪水,战士连续作战了" + day + "天零" + hours + "小 时");
}
}
package BaseDemo;
import java.util.Scanner;
//编写代码实现两个变量值交换,
int m = 3, n =5;
public class HomeworkDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数m:");
int m = sc.nextInt();//通过键盘录入得到第一个数m
System.out.println("请输入第二个整数n:");
int n = sc.nextInt();//通过键盘录入得到第二个数n
System.out.println("m,n交换前:" + m + ":" + n);
//输出mn与后面交换后做对比
//需要交换2个变量的值需要一个中间变量来缓存
int temp = m;
m = n;
n = temp;
System.out.println("m,n交换后:" + m + ":" + n);
}
}
package BaseDemo;
import java.util.Scanner;
//需求:今天是周二,100天以后是周几?
//提升:键盘录入星期几,再次录入多少天后 在判断是周几
public class HomeworkDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入今天是周几:");
int today = sc.nextInt();
System.out.println("请输入想要判断多少天后:");
int day =sc.nextInt() ;
int week = day%7;//得到剩余的天数
//得到周几 :如果得到的剩余天数+本身自有的天数大于7的话 则再次取余
int afterHunDay = (today + week)%7;
if(afterHunDay == 0) {
System.out.println("今天是周" + today + "," + day + "天以后是周末");
}else {
System.out.println("今天是周" + today + "," + day + "天以后是周" + afterHunDay);
}
}
}
运算符的优先级
- 最高的优先级:小括号,即( )
- 最低的优先级:赋值运算符,即=
- 优先级顺序:算术运算符>关系运算符>逻辑运算符