一、初识Java
-
A: java语言概述
* a: Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件的。
* b: Java的应用
* 开发QQ、迅雷程序(桌面应用软件)
* 淘宝、京东(互联网应用软件)
* c: Java的擅长
* 互联网:电商、P2P等等
* 企业级应用:ERP、CRM、BOS、OA等等
大数据
* d: Java语言平台
* JavaSE(标准版)部分,基础班学习JavaSE,JavaSE并不能开发大型项目。
* JavaEE(企业版)部分,就业班学习JavaEE,学习完JavaEE部分就可以开发各种大型项目了。 -
A: 常用的DOS命令
* a: 打开Dos控制台
* win+r–cmd–回车
* b: 常用dos命令
* cd… : 退回到上一级目录
* cd\ : 退回到根目录
* cd tools: 进入tools文件夹
* d: : 回车 盘符切换
* cd d:\234 :进入d盘的234文件夹,再切换盘符(d:)才能进入d:\234
* dir : 列出当前目录下的文件以及文件夹
* cls : 清除屏幕
* ipconfig: 查看本机的相关网络配置
* c: dos控制台运行记事本程序
* D:>C:\windows\notepad.exe
* 还可以省略“.exe”后缀,例如:D:>C:\windows\notepad -
A: JDK的下载
* a: 官网 http://www.oracle.com/cn/index.html
* b: 演示下载流程-
B: JDK的安装
- a: 傻瓜式安装
- 双击安装程序,然后一路next即可(但是不建议)
- b: 安装的推荐方式
- 安装路径不要有中文或者特殊符号如空格等。
- 所有和开发相关的软件最好安装目录统一。
- 举例:我的JDK安装路径
- D:\develop\Java\jdk1.7.0_72
- 举例:我的JDK安装路径
- 当提示安装JRE时,可以选择不安装。建议还是安装上。
* D:\develop\Java\jre\ - 安装路径中没有的文件夹,会自动创建
- a: 傻瓜式安装
-
C: 验证安装是否成功
- a:通过DOS命令,切换到JDK安装的bin目录下。
- D:\develop\Java\jdk1.7.0_72\bin
- b:然后分别输入javac和java,如果正常显示一些内容,说明安装成功
- a:通过DOS命令,切换到JDK安装的bin目录下。
-
-
A: JDK与JRE的关系
* a: JDK:它是Java开发运行环境,在程序员的电脑上当然要安装JDK;
* b: JRE:Java Runtime Environment它是Java运行环境,如果你不需要开发只需要运行Java程序,那么你可以安装JRE。例如程序员开发出的程序最终卖给了用户,用户不用开发,只需要运行程序,所以用户在电脑上安装JRE即可。
* c: JDK包含了JRE。- B: 跨平台特性
- a: 平台指的是操作系统 (Windows,Linux,Mac)。
- b: Java程序可以在任意操作系统上运行,一次编写到处运行
- c: 实现跨平台需要依赖Java的虚拟机 JVM (Java Virtual Machine)
- B: 跨平台特性
① 第一个Java程序1
public class K1_case1 { // 程序框架
public static void main(String[] args){ //main方法框架
System.out.println("Hello World!");
System.out.println("明天下午要结课考试!");// 输出语句
System.out.println("今天下午要默写笔记!");
System.out.println("************************"); // 输出后换行
System.out.print("今天下午要默写笔记!");// 输出后不换行
System.out.print("今天下午要默写笔记!");// 在上一行后面输出
}
}
▶▶▶运行结果
Hello World!
明天下午要结课考试!
今天下午要默写笔记!
************************
今天下午要默写笔记!今天下午要默写笔记!
② 转义字符2📕
// P25练习3
public class K2_TranferSymbol {
public static void main(String[] args) {
System.out.println("\t乐淘xxxx\n" +
"商品名称\t购买数量\t商品单价\t金额\n" +
"红米手机\t5\t799\t799\n" +
"华为手机\t5\t799\t799\n");
}
}
▶▶▶运行结果
乐淘xxxx
商品名称 购买数量 商品单价 金额
红米手机 5 799 799
华为手机 5 799 799
二、变量、数据类型和运算符
-
A: 关键字(了解一下)
* a: 定义
* 是被Java语言赋予特殊含义,具有专门用途的单词,比如之前接触的class,int,double均为Java已经预设好的
* b: 特点
* 组成关键字的字母全部小写(代码中的蓝色部分) ,注意String不是关键字
* c: 常见关键字
* public static void class等
* d: 注意事项
* goto与const是Java中的保留字,即没有赋予特殊含义却仍被Java占用的单词,类似Editplus这样的高级记事本,针对关键字有特殊的颜色标记,非常直观 -
A: 常量的定义
* 常量就是不变的数据量, 在程序执行的过程中其值不可以发生改变- B: 常量分类
- a: 整数类型
- 十进制表示方式:正常数字 如 13、25等
- 二进制表示方式:以0b(0B)开头 如0b1011 、0B1001
- 十六进制表示方式:以0x(0X)开头 数字以0-9及A-F组成 如0x23A2、0xa、0x10
- 八进制表示方式:以0开头 如01、07、0721
- b: 小数类型
- 如1.0、-3.15、3.168等
- c: 布尔类型
- true、false
- d: 字符类型
- 如’a’,‘A’, ‘0’, ‘家’
- 字符必须使用’’ 包裹,并且其中只能且仅能包含一个字符。
- e: 字符串类型
- 字符串String类型是一种引用类型,我们先了解作为常量类型的使用方式
- 如“我爱Java”,“0123”,“”,“null”
- 字符串必须使用“”包裹,其中可以包含0~N个字符。
- a: 整数类型
- B: 常量分类
1、变量
变量是一个数据存储空间的表示,它是存储数据的基本单元。【表示数据的名称,变量的值是变化的】
声明语法:数据类型 变量名[=值]; [ ]代表可无。 即为:数据类型 变量名;
使用必须声明且赋值。
变量名不能重复声明,命名要遵循编码规范中的命名规范。
// 1、声明:根据数据类型在内存中申请一块空间
int age;
// 2、赋值:将数据存储至对应的内存空间
age=18;
// 1+2可以合并成以下语句:
// int age=18;
// 3、使用:将数据修改至对应的内存空间
int age2=age+1;
命名规则(只能包含下面的内容,不能有其它内容)
* 1: 英文大小写字母
* 2:数字字符
* 3:$和_
* 注意事项
* 1:数字不能开头
* 2:不可以使用关键字
* 3:严格区分大小写,不限制长度
* 4:起名时,尽量达到见名知意
包名:多单词组成时所有字母均小写,使用.连接 aaa.bbb.ccc
* b: 类名&接口名:大驼峰式 AaaBbbCcc
* c: 变量名&方法名:小驼峰式 aaaBbbCcc
* d: 常量名:多单词组成是所有字母均大写,使用_连接AAA_BBB_CCC
2、★常用数据类型
- int 整型 占4字节 1
- double 【双精度浮点型】小数 占8字节
- char 字符型 单引号,单个字符 ‘男’ 占 2字节
- String 字符串型 双引号,一串字符 “你今天好乖啊!” “男”
3、★ 运算符
- 赋值运算符 (=):★赋值运算符是右边的先运算,再把值给左边的变量
a=2,a+=3 ; // a=a+3
+=,-=,*=,/=,%= - 算术运算符:(+、一、*、/、%)
- ★自增/自减运算符:变量名++;【相当于score=score+1】;变量名–;【相当于score=score-1】;
自增运算:
++ 变量:先进行自增,后进行运算。
变量++ :先进行运算,后进行自增。
自减运算:
–变量:先进行自减,而后进行运算处理
变量-- :先进行运算,而后进行自减处理。 - 关系运算符:(>、>=、<、<=、==、!=),结果是布尔值
“a”.equals(s) 判断”a“是否与s变量的值相等,结果是布尔值
4、表达式
概念:运算符号与操作数(数据/变量)的组合;
比如:a+3; a=2+3*b/2+6 * (7/3);
5、数据类型转换⚕
数据类型转换是为了方便不同类型的数据之间进行运算。
- ★自动类型转换:只能放大转化;int→double
- ★强制类型转换:丢失数据/没有四舍五入
★语法:(要转化成的数据类型) 变量名;
6、★布尔类型
boolean类型表示真假,两个值为true和false。
关系运算符可以用来比较大小、高低、多少等,比较后的结果是boolean类型。
7、★Scanner类输入信息⚕
当程序需要从键盘获取用户输入的命令或数据时,可以通过Scanner类【用于扫描输入文本的实用程序】实现从控制 台获取键盘上输入的信息。
三步走:
- 导入Scanner包:import java.util.Scanner;
- 使用Scanner包中的输入方法:Scanner xxx = new Scanner(System.in);
XXX 就是自己要用的扫描器(自定义)的名字,遵循命名规范。一般用sc/input/scan。 - 要求从控制台输入内容:
输入整数:xxx.nextInt();
输入小数:xxx.nextDouble();
输入字符串:xxx.next()
注意不能读两个由空格或符号隔开的单词
案例
① 变量声明
public class K1_variable {
public static void main(String[] args) {
int age; // 1、声明
age=18; // 2、赋值
int age2=age+1; // 3、使用
System.out.println(age2);
}
}
② 数据类型
public class K2_DataType {
public static void main(String[] args) {
// 1-1、数据类型:String 变量名:姓名 name 值:"王燚"
String name="王燚";
// 1-2、数据类型:int 变量名:年龄age 值:18
int age=18;
// 1-3、数据类型:double 变量名:分数score 值:69.95
double score=69.95;
// 1-4、数据类型:char 变量名:性别sex 值:'男'
char sex='男';
// 输出信息
System.out.println(name+'\t'+age+"\t"+score+"\t"+sex);
}
}
▶▶▶运行结果
王燚 18 69.95 男
③ 赋值运算符★
public class K3_Operator1 {
public static void main(String[] args) {
int a; //声明变量a
// 1+2=a; // 赋值运算符的错误示范
a=1+2; // 正确
System.out.println(a); // 输出变量a的值
System.out.println("a"); // 输出字符串"a"
int age1,age2=19; // 连续声明语句
age1=17;
System.out.println(age1+"\n"+age2)
}
}
④ 算术、比较运算符
public class K3_operator2 {
public static void main(String[] args){
int a=9; //声明变量a并赋值
int b=3; //声明变量b并赋值
// 算术运算符
System.out.println(
"a+b的结果是:"+(a+b)+"\n"+
"a-b的结果是:"+(a-b)+"\n"+
"a*b的结果是:"+(a*b)+"\n"+
"a/b的结果是:"+(a/b)+"\n"+
"a%b的结果是:"+(a%b));
// 比较运算符:结果是true/false
System.out.println("a>b的结果是:"+(a>b));
System.out.println("a!=b的结果是:"+(a!=b));
//自增、自减运算符
double score=69.95;
score--; // 自减运算符:相当于socre=score-1;
System.out.println("自减后分数:"+score);
int age=18;
age++; // 自增运算符:相当于age=age+1;
System.out.println("自增后年龄:"+age);
}
}
⑤ 数据类型转换
public class K4_dataTypeTrans {
public static void main(String[] args) {
// 1、自动转化
int radius=3; // int 4字节
double pi=3.1415; // double 8字节
// int length=2*pi*radius; //报错,不能int转double
double length=2*pi*radius; //圆的周长2piR
System.out.println("自动转化后的length的值:"+length); //结果为double类型
//2、强制转换:
System.out.println("强制转化后的length的值:"+(int)length);
// ✘✘✘了解可以转化即可:需要将字符转化成数值,字符串不可
char sex='男';
System.out.println("sex转换成int的结果是:"+(int)sex);
System.out.println("sex转换成double的结果是:"+(double)sex);
}
}
⑥ 输3门成绩算平均/差
// P39示例3
public class ComputeScore{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("HTML的成绩是:");
int html=input.nextInt(); //HTML分数
System.out.print("SQL的成绩是:");
int sql=input.nextInt();
System.out.print("JAVA的成绩是:");
int java=input.nextInt(); //JAVA分数
int dif; //分数差
double avg; //平均分
System.out.println("--------------------------------");
System.out.println("HTML\tSQL\tJAVA");
System.out.println(html+"\t"+sql+"\t"+java);
System.out.println("--------------------------------");
dif=html-sql; //计算HTML和SQL的成绩差
System.out.println("HTML和SQL的成绩差:"+dif);
avg=(html+sql+java)/3; //计算平均分
System.out.println("3门课的平均分是:"+avg);
}
}
三、Scanner输入
① 输入序号姓名分数
// 1、导入Scanner包
import java.util.Scanner;
public class inputKnow {
public static void main(String[] args){
// 2、使用Scanner包中的输入方法
Scanner input =new Scanner(System.in);
System.out.print("请输入序号:"); // 向控制台输出
// 3-1、要求从控制台输入整数
int order=input.nextInt(); //输入序号
System.out.print("请输入姓名:"); // 向控制台输出
// 3-2、要求从控制台输入字符串
String name=input.next(); //输入姓名
System.out.print("请输入分数:"); // 向控制台输出
// 3-3、要求从控制台输入小数
double score=input.nextDouble(); //输入分数
System.out.println(name+"的序号为:"+order+"分数为:"+score);
}
}
② 取数字的个十百千位
public class k3_case1 {
public static void main(String[] args) {
int a=12345;
int ww=a/10000; // 取万位数1
int qw=a/1000%10; // 取千位数2
int bw=a/100%10; // 取百位数3
int sw=a/10%10; // 取十位数4
int gw=a%10; // 取个位数5
}
}
③ 输入生日,取年月日
public class k3_case2 {
public static void main(String[] args) {
/*
要求:
定一个日期,用变量date:值是你自己的生日格式:20010903
要求:用变量及算术运算符获得日期的年月日,输出到控制台,格式为:
"日期date的年份为:xx"
"日期date的月份为:xx"
"日期date的号数为:xx"
并且要求做判断:月份,日期必须是有效的。加上循环【循环判断】
*/
int date=20051228; //变量声明:数据类型 出生日期=值;
int year=date/10000; //取得年份,赋值给声明变量year
int month=date/100%100; //取得月份
int day=date%100;
// 按照输出格式输出内容
System.out.println(
"日期date的年份为:"+year+"\n"+
"日期date的月份为:"+month+"\n"+
"日期date的号数为:"+day);
}
}
④ 输入半径/高,算圆锥体积
import java.util.Scanner;
public class K1_case3 {
public static void main(String[] args) {
Scanner dh=new Scanner(System.in); // 创建扫描器
System.out.print("请输入圆锥的半径:"); //输入提示
int Radius = dh.nextInt(); //输入半径
System.out.print("请输入圆锥的高:"); //输入提示
int Height = dh.nextInt(); //输入高
// 体积公式:pi*r*r*h/3
double v = 3.1415*Radius*Radius*Height/3;
System.out.print("半径为"+Radius+"高为"+Height+"的圆锥的体积是:"+v);
dh.close();
}
}
⑤ 输入长宽,算长方形面积
// 1、导入Scanner包
import java.util.Scanner;
public class K1_case4 {
public static void main(String[] args){
// 2、使用Scanner包中的输入方法
Scanner input =new Scanner(System.in);
// 向控制台输出
System.out.print("请输入正方形的长度:");
// 3、要求从控制台输入
int length=input.nextInt();
System.out.print("请输入正方形的宽度:");
// 3、要求从控制台输入
int width=input.nextInt();
//4、用完关闭不会有警告。
input.close();
// 正方形的面积 = 长*宽
int area=length*width;
System.out.println("长方形的面积是:"+area);
}
}
⑥ 交换牌📕
public class homework1 {
public static void main(String[] args) {
int first = 10; //存储第一个整数
int second = 8; //存储第二个整数
int third; //中间变量
/*显示互换前的数*/
System.out.println("输出互换前手中的纸牌:");
System.out.println("左手中的纸牌: " + first);
System.out.println("右手中的纸牌: " + second);
/*互换这两个数*/
third = first;
first = second;
second = third;
/*显示互换后的数*/
System.out.println("\n输出互换后手中的纸牌:");
System.out.println("左手中的纸牌: " + first);
System.out.println("右手中的纸牌: " + second);
}
}