MOOC JAVA笔记
1.基础了解
JDK是开发人员安装的,它提供了开发java程序的必须工具
JRE是普通用户安装的,它提供了java的运行环境
JVM是java虚拟机运行程序的核心
2.程序的移植:
右击project ---show explore
\3. java标识符
使用标识符时,需要遵守几条规则:
\1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123name 就是不合法滴
\2. 标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以
\3. 标识符是严格区分大小写的。 所以涅,一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!
\4. 标识符的命名最好能反映出其作用,做到见名知意
4.变量名
变量名首字母必须为:字母、下划线、$符
其余部分为任意多的字数、字母、下划线、$符
5.数据类型运用
在main 方法中定义的变量必须先赋值然后才能输出
6.java中的自动类型转换
Double 型兼容int型,即 80->80.0
但int并不兼容double类型,char类型也不兼容int型
7.java中的强制类型转换
double heightAvg1=176.2;
int heightAvg2=(int)heightAvg1;
8.常量的应用
final char SEX1 = '女';
final char SEX2 = '男';
System.out.println(SEX1);
System.out.println(SEX2);
常量一般用大写字母表示
9.Java中使用注释:
Java中的注释有三种类型:单行注释、多行注释、文档注释(可以用javadoc标记,生成更详细的文档信息)
文档注释以/**开头以*/结尾
多行注释以/*开头
10.运算符
Java 语言中常用的运算符可分为如下几种:
Ø 算术运算符
Ø 赋值运算符
Ø 比较运算符
Ø 逻辑运算符
Ø 条件运算符
11.java中的算数运算符
自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ 、 8-- 等写法都是错误滴
练习:
public class HelloWorld{
public static void main(String[] args) {
int age1=24;
int age2=18;
int age3=36;
int age4=27;
int sum = age1+age2+age3+age4;
double avg = (age1+age2+age3+age4)/4;
int minus = age1-age2;
int newAge = --age1;
System.out.println("年龄总和:"+sum);
System.out.println("平均年龄:"+avg);
System.out.println("年龄差值:"+minus);
System.out.println("自减后的年龄:"+newAge);
}
}
13.java中的条件运算符
条件运算符( ? : )也称为 “三元运算符”
public class HelloWorld{
public static void main(String[] args) {
int score=68;
String mark = (score >=60) ? "及格" : "不及格";
System.out.println("考试成绩如何:"+mark);
}
}
14.java中运算符的优先级
在实际开发中,一般会使用小括号辅助进行优先级管理
15.java条件语句之if..else
public class HelloWorld {
public static void main(String[] args) {
int age = 25;
if (age >18){
System.out.println("成年");
}else {
System.out.println("未成年");
}
}
}
16java条件语句之多重if
public class HelloWorld {
public static void main(String[] args) {
int age = 25;
if (age >60){
System.out.println("老年");
}
else if (age>18&&age<40){
System.out.println("少年");
}
else if (age>40&&age<60){
System.out.println("中年");
}
else {
System.out.println("童年");
}
}
}
17.java条件语句之嵌套if
public class HelloWorld {
public static void main(String[] args) {
int score = 94;
String sex = "女";
if (score>80){
if (sex == "女"){
System.out.println("进入女子组决赛");
}
}
}
}
18.java条件语句之switch
使用 switch 语句补全代码,设置属于你的菜谱:如果今天是星期一、三、五,则早餐吃包子,如果是星期二、四、六,则早餐吃油条,如果是星期日,则吃“主席套餐”
public class HelloWorld {
public static void main(String[] args) {
char today='一';
switch(today){
case '一':
case '三':
case '五':
System.out.println("吃包子");
break;
case '日':
System.out.println("吃主席套餐");
break;
default:
System.out.println("吃油条");
}
19.java循环语句之while
java常用的三种循环:while do.....while for
public class HelloWorld {
public static void main(String[] args) {
int i = 1; // 代表 1 - 5 之间的数字
// 当变量小于等于 5 时执行循环
while ( i < 5 ) {
// 输出变量的值,并且对变量加 1,以便于进行下次循环条件判断
System.out.println(i);
i++;
}
}
}
20.java循环语句之 do while
计算50以内偶数之和:
public class HelloWorld {
public static void main(String[] args) {
int sum = 0; // 保存 1-50 之间偶数的和
int num = 2; // 代表 1-50 之间的偶数
do {
//实现累加求和
```
sum += num ;
```
num = num + 2; // 每执行一次将数值加2,以进行下次循环条件判断
} while ( num <=50 ); // 满足数值在 1-50 之间时重复执行循环
System.out.println(" 50以内的偶数之和为:" + sum );
}
}
21.java循环语句之for循环
1到100之间不能被3整除的数之和为
public class HelloWorld {
public static void main(String[] args) {
int sum = 0; // 保存不能被3整除的数之和
// 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
for (int i = 1; i<= 100;i++ ) {
// 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
if (i % 3 != 0) {
sum = sum + i; // 累加求和
}
}
System.out.println("1到100之间不能被3整除的数之和为:" + sum);
}
}
22.java循环跳转语句之break
实现功能:循环将 1 到 10 之间的整数相加,如果累加值大于 20,则跳出循环,并输出当前的累加值。
public class HelloWorld {
public static void main(String[] args) {
// 保存累加值
int sum = 0;
// 从1循环到10
for (int i = 1; i <= 10; i++) {
// 每次循环时累加求和
sum = sum + i;
// 判断累加值是否大于20,如果满足条件则退出循环
if ( sum >20 ) {
System.out.print("当前的累加值为:" + sum);
break;
//退出循环
}
}
}
}
23.java循环语句之continue
continue 的作用是跳过循环体中剩余的语句执行下一次循环
练习:
求 1 到 10 之间的所有偶数的和。
public class HelloWorld {
public static void main(String[] args) {
int sum = 0; // 保存累加值
for (int i = 1; i <= 10; i++) {
// 如果i为奇数,结束本次循环,进行下一次循环
if ( i %2 !=0 ) {
continue;
}
sum = sum + i;
}
System.out.print("1到10之间的所有偶数的和为:" + sum);
}
}
24.编程练习
给定一个小于10位的数,判断它是几位数。
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
if(num>=0&&num<999999){
while(num!=0){
count++;
num/=10;
}
System.out.println("这是一个"+count+"位数");
}else{
System.out.print("输入有误");
}
}
}
为指定成绩加分,直到分数大于等于 60 为止,输出加分前和加分后的成绩,并统计加分的次数
public class HelloWorld {
public static void main(String[] args) {
// 变量保存成绩
int score = 53;
// 变量保存加分次数
int count = 0;
//打印输出加分前成绩
System.out.println("加分前成绩"+score);
// 只要成绩小于60,就循环执行加分操作,并统计加分次数
while(score<60){
score += 1;
count++;
}
//打印输出加分后成绩,以及加分次数
System.out.println("加分后成绩:"+score);
System.out.println("共加了:"+count+"次");
}
}
25.编程代码优化
使用Scanner工具类接受用户输入的信息
String 变量 = new Scanner(System.in).nextInt();
26.用IDEA调试程序
找到一个断点:
这样当程序执行到断点时,系统会返回当前的变量值,用f8进行步进调试,一行一行的执行代码,并且返回当前的返回值
27.进阶练习
打印每个班的学生平均成绩
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import java.util.Arrays;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
int classNum= 3;
int stuNum=4;
int sum=0;
double avg = 0;
for(int i =1;i <=classNum;i++){
System.out.println("****请输入第"+i+"个班级的成绩****");
sum = 0;
for (int j = 1;j<=stuNum;j++){
System.out.print("请输入第"+j+"个学员的成绩:");
int score = new Scanner(System.in).nextInt();
System.out.println("学员成绩:"+score);
sum = sum + score;
avg = sum / stuNum;
}
System.out.println("第"+i+"class学生的平均分为"+avg);
}
}}
28.数组
public class HelloWorld {
public static void main(String[] args) {
// 定义一个数组,保存五名学生的成绩
int[] scores = { 78, 93, 97, 84, 63 };
// 输出数组中的第二个成绩
System.out.println("数组中的第2个成绩为:" + scores[1] );
}
}
29.如何使用java中的数组
数组名 = new 数据类型 [数组长度];
在声明数组的同时为它分配空间,如:
int [] scores = new int[5];
int [] scores = {78,91,84,68};等价于 int [] scores =new int [] {78,91,84,68};
public class HelloWorld {
public static void main(String[] args) {
// 定义一个长度为5的字符串数组,保存考试科目信息
String[] subjects = new String [5] ;
// 分别为数组中的元素赋值
subjects[0] = "Oracle";
subjects[1] = "PHP";
subjects[2] = "Linux";
subjects[3] = "Java";
subjects[4] = "HTML";
System.out.println("数组中第4个科目为:" + subjects[3] );
}
30.使用循环操作java中的数组
数组名.length 用于获取数组的长度
练习:
实现输出数组中的最大值、最小值和平均值:
public class HelloWorld {
public static void main(String[] args) {
// 定义一个整型数组,并赋初值
int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };
int max = nums[0]; // 假定最大值为数组中的第一个元素
int min = nums[0]; // 假定最小值为数组中的第一个元素
double sum = 0;// 累加值
double avg = 0;// 平均值
for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素
// 如果当前值大于max,则替换max的值
if(max < nums[i]){
max = nums[i];
}
if(min > nums[i]){
min = nums[i];
}
// 如果当前值小于min,则替换min的值
// 累加求和
sum += nums[i];
}
// 求平均值
avg = sum / nums.length;
System.out.println("数组中的最大值:" + max);
System.out.println("数组中的最小值:" + min);
System.out.println("数组中的平均值:" + avg);
}
}
31.练习
利用数组和输入的周数,完成输出:
输出本月(4周)的学习任务,并标记出本周的
运行效果:
实现代码:
import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
import java.util.Arrays;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
//创建String数组,并为每一个元素赋值。赋值内容为第几周+学习内容
String[] contentList = new String[35];
contentList[0] = "【第1周】环境搭建与语法入门";
contentList[1] = "【第2周】Java语法之循环、数组与方法";
contentList[2] = "【第3周】面向对象之封装与继承";
contentList[3] = "【第4周】面向对象之单例模式与多态";
contentList[4] = "【第5周】常用工具类(上)";
contentList[5] = "【第6周】常用工具类(下)";
contentList[6] = "【第7周】常用工具类(下)";
contentList[7] = "【第8周】前端基础之HTML与CSS";
contentList[8] = "【第9周】前端基础之JavaScript与综合案例";
contentList[9] = "【第10周】Java Web基础";
contentList[10] = "【第11周】Java Web基础";
contentList[11] = "【第12周】常用功能与过滤器";
contentList[12] = "【第13周】监听器与项目实战";
contentList[13] = "【第14周】监听器与项目实战";
contentList[14] = "【第15周】MySQL基础";
contentList[15] = "【第16周】MySQL基础";
contentList[16] = "【第17周】Java数据库开发基础";
contentList[17] = "【第18周】框架前置知识";
contentList[18] = "【第19周】MyBatis基础";
contentList[19] = "【第20周】MyBatis实现OA系统项目实战";
contentList[20] = "【第21周】MyBatis实现OA系统项目实战";
contentList[21] = "【第22周】Linux环境搭建与Redis应用";
contentList[22] = "【第23周】Spring基础";
contentList[23] = "【第24周】Spring基础";
contentList[24] = "【第25周】Spring基础";
contentList[25] = "【第26周】SSM开发社交网站";
contentList[26] = "【第27周】Spring Boot电商项目实战";
contentList[27] = "【第28周】Spring Boot电商项目实战";
contentList[28] = "【第29周】面试";
contentList[29] = "【第30周】多线程与分布式";
contentList[30] = "【第31周】多线程与分布式";
contentList[31] = "【第32周】Spring Cloud基础";
contentList[32] = "【第33周】Spring Cloud电商实战";
contentList[33] = "【第34周】Spring Cloud电商实战";
contentList[34] = "【第35周】Zookeeper+Dubbo应用与面试";
//提示信息
System.out.print("您要开始第几周学习啦,直接输入数字吧:");
//设置变量存储接收到的数据
int week = new Scanner(System.in).nextInt();
int month;
//计算今天是几月(1-月第一周、4-月第4周)
if (week / 4 != 0) {
month = week / 4 + 1;
} else {
month = week / 4;
}
//计算输入的周是这个月的第几周
//提示信息
System.out.println("以下是您本月的学习计划, √ 代表当周学习任务");
System.out.println("=======================================");
//利用for循环,找到数组中对应这个月的内容输出
for (int i = (month - 1) * 4; i < month * 4; i++) {
try {
if (i == (week -1)){
System.out.println("√" + contentList[i]);
}else {
System.out.println(contentList[i]);
}}
catch(ArrayIndexOutOfBoundsException e ){
System.out.println("未发现第"+(i-1)+"周");
}
}
}
}
//根据当前月第几周,在输出此行时,前面添加“√”