学习Java的第100天(MyDay05)

Day05

一.转义字符

含义:用来表示有特殊意义的字符本身

符号作用
\n换行
\t水平制表
\”双引号
\’单引号
\一个斜杠

二.常量

三.Java执行语句

四.if分支

简单if分支

语法结构:

if(表达式) {

代码块;

}

理解:

案例:如果麻生希的Java考试成绩大于98分,麻生希就能获得一辆法拉利作为 奖励

复杂if分支

案例一: 人类的健康值在20-25的数值内为健康

(健康值算法为:体重(Kg) / 身高(米)的平方)

案例二:麻生希Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;

或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他。

if...else...

语法结构:

if(表达式) {

代码块1;

}else {

代码块2;

}

理解:

案例:如果麻生希Java考试成绩大于98分,老师就奖励他一个劳斯莱斯,否则 老师就罚他进行编码

多重if分支

语法结构:

if(表达式1) {

代码块1;

}else if(表达式2) {

代码块2;

}else if(表达式n) {

代码块n;

}else {

else代码块;

}

理解:

案例一:人类的健康值在

15-20的数值内为偏瘦

20-25的数值内为健康

25-30的数值内为偏胖

(健康值算法为:体重(Kg) / 身高(米)的平方)

案例二:通过键盘录入学生成绩

n 如果在91-100之间,则打印“A”,

n 否则如果在81-90之间,则打印“B”,

n 否则如果在71-80之间,则打印“C”

否则如果在61-70之间,则打印“D”

否则打印“E”

五.switch分支

语法结构:

switch(表达式) {

case 值1:

代码块1;

break;

case 值2:

代码块2;

break;

case 值n:

代码块n;

break;

default:

default代码块;

break;

}

六.java的循环语句

七.for循环

语法结构:

理解:

死循环:

for循环变形:

八.for循环嵌套

案例一:打印一个3行4列的长方形,如下图。逐步来实现

案例二:打印直角三角形,难度相比上面要高

案例三:打印99乘法表

九.while循环

语法结构:

理解:

死循环:

案例:我有个梦想,每月存3000,每月递增1000元,多少个月后存满100万

十.do-while循环

语法结构:

理解:

案例:麻生希参加学校组织的歌咏比赛,大赛在即,老师建议:先彩排一次,如 果很令人满意,以后就不用彩排了,否则每天都排,直到现场表现满意为 止!

十一.for vs while vs do-while

语法结构的区别:

执行顺序的区别:

应用场景的区别:

十二.特殊的流程控制语句

break:作用于循环,表示跳出整个循环

案例:循环录入麻生希同学5门课的成绩并计算平均分,如果某分数录入为负, 停止录入并提示。

continue:作用于循环,表示跳过循环体剩余部分,进行下一次循环

案例:循环录入Java课的学生成绩,统计分数大于等于 80分的学生比例。

return:如果单独写,方法到此结束

lable:

### Java 高级特性 Day 04 学习教程 #### 一、继承的深入理解 继承是面向对象编程的重要特性之一,它允许子类继承父类的非私有属性和方法。通过 `extends` 关键字可以定义一个类作为另一个类的子类[^3]。 ```java class 动物 { String name; public 动物(String name) { this.name = name; } public void 喊叫() { System.out.println(name + " 发出了叫声!"); } } class 狗 extends 动物 { public 狗(String name) { super(name); } @Override public void 喊叫() { System.out.println(name + " 汪汪!"); } } ``` 上述代码展示了如何利用继承来扩展功能并重写父类中的方法。 --- #### 二、SAX 和 DOM4J 的对比分析 在处理 XML 数据时,可以选择不同的解析方式。以下是两种常见的方式及其适用场景: 1. **SAX 解析器** SAX 是一种基于事件驱动的解析技术,适合用于大规模 XML 文件的读取操作。它的特点是占用资源较少且内存消耗低[^1]。 2. **DOM4J 库** DOM4J 提供了一个强大的 API 来简化 XML 文档的操作。它是开源项目的一部分,具有高性能和丰富的功能集合。 对于小型应用或者需要频繁修改节点的情况,推荐使用 DOM4J;而对于超大文件,则更适合采用 SAX 方法进行逐行扫描。 --- #### 三、I/O 流基础回顾 Java 中 I/O 流提供了多种机制来进行数据传输与存储管理。下面是一个简单的例子展示如何从本地磁盘加载文件内容到程序内部缓冲区中去[^2]: ```java import java.io.FileInputStream; import java.io.IOException; public class FileReadExample { public static void main(String[] args) throws IOException { FileInputStream fis = null; try { byte[] buffer = new byte[1024]; // 创建输入流实例化对象 fis = new FileInputStream("example.txt"); int length; while ((length = fis.read(buffer)) != -1){ System.out.print(new String(buffer, 0 , length)); } } finally{ if(fis!=null)fis.close(); } } } ``` 此片段演示了基本文件读写的流程以及异常捕获的重要性。 --- #### 四、多线程实践案例 创建多个并发运行的任务可以通过实现 Runnable 接口或继承 Thread 类完成。这里给出一段关于设置自定义线程名的小示范[^4]: ```java package Chapter1; // 定义一个新的任务单元 class MyTask implements Runnable { private final String taskName; public MyTask(String taskName) { this.taskName = taskName; } @Override public void run() { for (int i=0;i<5;i++) { System.out.printf("%s 正在工作...第%d次\n",taskName,i+1); try {Thread.sleep((long)(Math.random()*100));} catch(Exception e){} } } } public class MultiThreadsTest { public static void main(String[] args) { Thread threadA=new Thread(new MyTask("线程 A"),"线程-A"); Thread threadB=new Thread(new MyTask("线程 B"),"线程-B"); threadA.start();threadB.start(); // 主线程等待所有子线程结束之后再退出 try{threadA.join();threadB.join();}catch(InterruptedException ie){ie.printStackTrace();} System.out.println("全部线程已完成."); } } ``` 以上代码说明了启动新线程的过程,并强调了 join 方法的作用以确保主线程不会提前终止。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值