Day_01
1.1什么是程序
程序即为模拟现实世界,解决现实问题的计算机指令的有序集合。
1.2Java的历史
1995年,詹姆斯、高斯林 (Java之父)
1998年,JDK1.2 J2SE J2EE J2ME
2004年,JDK1.5---->java5.0 JavaSE JavaME JavaEE
2006年被Oracle收购
2014年Java最经典的版本(最后一个免费版本)
1.3Java的特点
1.面向对象:一切皆为对象
2.简单性:自动管理内存,逻辑结构清晰
3.跨平台:跨操作系统
1.4Java的执行机制
先编译再解释,设计理念 Write Once Run Anywhere(一次编译到处运行)
1.5Java的JDK,JRE,JVM
JDK: Java开发工具箱 包括了JRE+类库
JRE: Java运行环境 包括了JVM+解释器
JVM: Java虚拟机 用于执行Java代码
包含关系如图示
1.6代码注释
注释:1.单行注释 2.多行注释 3. 文档注释
1.单行注释:在当前有效果 //
2.多行注释:多行有效果 /* */
3.文档注释:多行有效果,差别在于,可生成文档 /** */
1.7标识符命名
标识符:在程序中自己命名的单词, 例如:类名,函数名,包名,变量
组成部分:
由数字、字母、下划线和$组成,数字不能开头
不能是关键字(public,class等),保留字(goto,const等)
关键字:在程序中代表特定含义的单词;
保留字:现在没有用,但可能以后有用
标识符约定规则:
类名:首字母大写,如果多个单词组成,其他字母首字母大写---大驼峰
函数名和变量名:首字母小写,如果多个单词组成,其他字母首字母大写---小驼峰
包名:包名全小写,运行需通过.去拼接
常量:全大写,用_拼接
1.8HelloWorld
public class hello {
public static void main(String[] args) {
System.out.println("HelloWorld!");
}
}
Day_02
2.1变量
变量的定义: 数据类型 变量名 = 数值;
//变量定义方式有三种:
//1. 先声明,再赋值
int a;
a = 5;
System.out.println(a); //5
//2. 声明的同时进行赋值(最常用)
int b = 3;
System.out.println(b); //3
//3. 多个变量同时声明与赋值
int c=2,d=6,e=7;
System.out.println(c); //2
2.2数据类型
基本数据类型分为八大数据类型,其中整数占四种,分别是byte,short,int,long
小数两种:float,double,布尔类型boolean,字符char
整数类型的取值范围
小数类型的取值范围
boolean 只有真或假(true or false)
char ASCII码和Unicode码 (0~65535)
2.3转义字符
\n 换行符
\t 缩进符
\\ 反斜线
\' 单引号
\'' 双引号
2.4引用数据类型之字符串
String a = "hello";
System.out.println(a);
String b = "world";
System.out.println(b);
2.5类型转换
1.自动类型转换
1.1.转换的类型要兼容:整数,小数,字符
1.2.目标类型大于源类型
2.强制类型转换
2.1.转换的类型要兼容:整数,小数,字符
2.2.目标类型小于源类型
byte bb = (byte)i; //int转byte--强转
int ii = (int)l; //long转int---强转
long ll = (long)f; //float转long--强转
//类型转换规则:
//1.整数长度足够,数据完整
int i = 5;
byte b = (byte)i;
System.out.println(b); //5
//2.整数长度不够,数据截断--(隐患)
int ii = 258;
byte bb = (byte)ii;
System.out.println(bb); //2
//3.是负数需要进行换算(原码,反码,补码)
int iii = 130;
byte bbb = (byte)iii;
System.out.println(bbb); //-126
(扩展了解)关于负数(源码、反码、补码)(自己还需再理解,现在已经忘记怎么操作了)
补码:符号位强制为负数(符号位为1),以补码形式呈现
反码:除符号位外全部取反
源码:将反码加一查看结果
2.6 运算符
2.6.1算数运算符
加减乘除余 + - * / %
2.6.1赋值运算符
= 直接赋值 += -= *= /= %= 求和后赋值,求茶后赋值·······
2.6.3关系运算符
> < >= <= == != 大于 小于 大于等于 小于等于 等于 不等于
结果均为boolean
2.6.4 单目运算符(一元运算符)自增自减
I++ 后置自增,先计算表达式的值,变量后+1 (先打印后自增)
++i 前置自增,变量先+1,再计算表达式的值 (先自增再打印)
i-- 后置自减,先计算表达式的值,变量后-1
--I 前置自减,变量先-1,再计算表达式的值
2.6.5四位数的各个位数的位置数值的取法
int gewei = custNo % 10;
int shiwei = custNo / 10 % 10;
int baiwei = custNo / 100 % 10;
int qianwei = custNo / 1000;
2.6.6逻辑运算符
两边操作数为布尔类型,进行逻辑运算后,最终结果依然为布尔类型
运算符包括: && || !
&& 且 操作数两边,如果一个为false,结果为false
|| 或 操作数两边,如果有一个为true,结果为true
! 非 操作数为true,则结果为false;取反操作
2.6.7三目(元)运算符
格式: (关系表达式)?值1:值2
int a = (5>3)?5:3;
System.out.println(a); //5
小结:优先级: ()小括号优先级最高; ----->算数运算符-----> 关系运算符------>逻辑运算符------>赋值运算符
2.7数据类型提升
1.进行算数运算时:最终的结果为操作数中最大的类型,只有short和byte结果为int 2.String类型拼接运算: String类型+任意类型的值,最终都为String类型
2.8控制台录入
控制台录入操作步骤:1.导包 2.实例化对象 3.获取录入的值
import java.util.Scanner; //1.导包
Scanner sc = new Scanner(System.in); //2.实例化对象
3.获取录入的值
String s = sc.next(); //接收字符串 阻塞方法 (常用)
int s = sc.nextInt(); //接收int类型值 (常用)
double s = sc.nextDouble(); //接收double类型的值
char s = sc.next().charAt(0); //接收第1个字符,0代表第一个字符,1代表第2个..
Day_03
3.1 if选择结构
//单分支
if (){
}
//双分支
if () {
}
else if(){
}
//多分支
if () {
}
else if(){
}else if(){
}else if(){
}
//嵌套if
if () {
if () {
}
}
//多分支嵌套
if () {
if () {
}
else if(){
}else if(){
}
}
部分习题代码
/* 3 if else if else*/
/*输入金额,判断是否足够购买商品
预算 > 100万 奔驰S级
预算 > 50万 宝马5系
预算 > 10万 奥迪A4L
预算 < 10万 捷安特自行车
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入金额(单位:万元):");
int i1 = sc.nextInt();
if (i1>100) {
System.out.println("买奔驰S级!");
}
else if(i1>50){
System.out.println("买宝马5系!");
}
else if(i1>10){
System.out.println("买奥迪A4L");
}
else if(i1<10){
System.out.println("买捷安特自行车");
}
}
public static void main(String[] args) {
/* 4 嵌套if
运动会百米赛跑,用时10秒之内的人进入总决赛,
否则淘汰,进入总决赛后分男,女赛,输出进入的是男子组决赛还是女子组决赛
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入百米赛跑运动员成绩:");
double i1 = sc.nextDouble();
System.out.println("请输入百米赛跑运动员性别:");
char c1 =sc.next().charAt(0);
if (i1<10) {
System.out.print("恭喜!");
if (c1=='男') {
System.out.println("进入男子组决赛!");
}else {
System.out.println("进入女子组决赛!");
}
} else {
System.out.print("很遗憾,没能进入决赛,请再接再厉!");
}
}
public static void main(String[] args) {
/*/* 4 嵌套if
从家里上学,
1、moeny>=100,做车,moeny>=1000曹操专车,moeny<1000滴滴拼车
2、没有moeny 就走路
到学校
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入零花钱:");
double i1 = sc.nextDouble();
if (i1>=100) {
System.out.print("坐车!");
if (i1>=1000) {
System.out.println("坐曹操专车");
}else {
System.out.println("坐滴滴拼车");
}
} else {
System.out.print("没钱,走路吧");
}
}
3.2switch 分支语句(标号跳转语句)
switch(变量){
case 值1:
语句体1;
case 值2:
语句体2;
break;
case 值n:
语句体n;
default: (类似if多分支的最后一个else)
结束的语句体;
}
部分代码
public static void main(String[] args) {
/*
* /* 5 switch 输入数字,输出今天星期几
*
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字(1~7):");
int i1 = sc.nextInt();
switch (i1) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("程序结束");
break;
}
}
/*
* 7、 四则运算器 题目要求:要求操作符和两个操作数,
* 执行相应的四则运算。
* 解题思路 : (1) 输入要进行运算的符号 + - * /
* (2)输入要运算的2个数值 (3)根据 + - * /
* 判断做 2个数的对饮运算
*/
System.out.println("请输入要进行的运算(+-*/)");
char c1 = scanner.next().charAt(0);
System.out.println("请输入操作数1");
int i5 = scanner.nextInt();
System.out.println("请输入操作数2");
int i6 = scanner.nextInt();
switch (c1) {
case '+':
System.out.println("加法运算结果:"+(i5+i6));
break;
case '-':
System.out.println("减法运算结果:"+(i5-i6));
break;
case '*':
System.out.println("乘法运算结果:"+(i5*i6));
break;
case '/':
if(i6!=0) {
System.out.println("除法运算结果:"+(i5/i6));
}else {
System.out.println("除法数字有误");
}
break;
default:
System.out.println("错误!程序结束!");
}
//请输入1~12月份数字,打印对应的天数
System.out.print("请输入月份:");
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31");
break;
case 2:
System.out.println("28");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30");
break;
default:
System.out.println("输入有误~");
break;
}
3.3局部变量
//局部变量:定义在方法内的变量,必须先赋值才能使用
//int a; //声明不赋值,则不能使用
//int a = 3;
//System.out.println(a);
//作用域:变量的有效范围,定义处到}结尾前
//注意:在重叠作用域中,不能定义同名变量
//int a = 5;
{
int a = 2;
System.out.println(a); //2
}
{
int a = 3;
System.out.println(a); //3
}
Day_04-05
循环结构
4.1while循环
语法:初始化语句; //1.初始化语句
while(条件判断){ //2.条件判断,条件成立,则执行循环体;否则跳出循环
循环体语句; //3.满足条件则执行
增量语句; //4.为条件判断服务,用于改变条件判断的变量值;再回到第2句
}
执行次数0-n
部分代码
/*
* 使用循环和if,输出1-100,除开所有个位带3的数值,并求和
*
*/
System.out.println("=====判断一=======");
int i1 = 1;
int sum = 0;
while (i1 <= 100) {
if (i1 % 10 != 3) {
sum = i1 + sum;
} else {
System.out.println(i1);
}
i1++;
}
System.out.println("======偶数和=======");
int i3 = 1;
int sum3 = 0;
while (i3 <= 100) {
if (i3 % 2==0) {
sum3 = i3 + sum3;
}
i3++;
}
System.out.println(sum3);
}
4.2 do while循环
执行次数1-n
部分代码
/* 3
* do while 学院先做1张测试题,老师判断是否合股,不合格就继续做,直到合格
* /
System.out.println("======3========");
Scanner input=new Scanner(System.in);
int i=0;
char c ;
do {
System.out.println("请输入分数");
i=input.nextInt();
System.out.println("分数是"+i);
System.out.println("请判断是否合格,是输出y,否则输出n");
c =input.next().charAt(0);
if (c=='n') {
System.out.println("不合格,重来");
}
} while (c!='y');
System.out.println("恭喜过关");
}
周总结
复习回顾了Java的部分基础知识,重新敲了n遍基础代码,逐渐培养自己的程序思维思考模式