学习java的第五周
java流程控制
顺序结构
- 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执的处理步骤组成的,它是任何-一个算法都离不开的一种基本算法结构。
选择结构
if结构
if(布尔表达式)
{
//如果为ture执行的语句
}
else
{
//如果布尔表达式的值为false
}
- if有四种结构,if单选择结构,if双选择结构,if多选择结构,嵌套的if结构
switch多选择结构
switch(expression)
{
case value: //语句
}
- 可以使用字符串String类型
九九乘法表
public class test {
public static void main(String[] args) {
for(int i = 1;i<10;i++)
{
for(int j = 1; j<=i;j++)
{
sum=j*i;
System.out.printf("%d * %d = %d ",j,i,i*j);
}
System.out.println();
}
}
}
- 这是在看视频之前按照他题目写出来的代码,在看了他写的代码之后,发现在java中可以写的更简便些,可以将输出数据总和起来写成
System. out . print(j+""+i+"="+(j"i) + "\t");
打印三角形
public class test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
for(int i = 0;i<x;i++ )
{
for(int k = x;k>=i;k--)
{
System.out.print(" ");
}
for(int j = 1;j<=i*2-1;j++)
{
System.out.print("*");
}
System.out.println();
}
}
scanner.close();
}
- 这是按照视频的题目写出的代码
方法
- 类似于c中的函数
方法的重载
- 重载就是在一个类中,有相同的函数名称,但形参不同的函数。
规则 - 方法名称必须相同。
- 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
- 仅仅返回类型不同不足以成为方法的重载。
可变参数
- 在方法声明中,在指定参数类型后加一-个省略号(..)。
- -个方法中只能指定-个可变参数,它必须是方法的最后-个参数。任何普通的参数必须在它之前声明。
例子:public void max( double... numbers) {}
作业
- 写-个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。
public class test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你要计算的算式,注意格式为:数字 符号 数字");
System.out.println("输入字母'z'时结束运行");
while(!scanner.hasNext("z"))
{
double sum=0;
double num1 = scanner.nextInt();
String sign = scanner.next();
double num2 = scanner.nextInt();
switch(sign)
{
case "+":sum = Add(num1,num2);System.out.println(sum);break;
case "-":sum=Less(num1,num2);System.out.println(sum);break;
case "*":sum = Mul(num1,num2);System.out.println(sum);break;
case "/":sum = Div(num1,num2);System.out.println(sum);break;
}
}
}
public static double Add(double num1, double num2)
{
return num1 + num2;
}
public static double Less(double num1, double num2)
{
return num1 - num2;
}
public static double Mul(double num1, double num2)
{
return num1 * num2;
}
public static double Div(double num1, double num2)
{
if(num2!=0)
{
return num1 / num2;
}
else
{
return 0;
}
}
}
三种初始化及内存分析
内存分析
java内存
堆
- 存放new的对象和数组
- 可以被所有的线程共享.不会存放别的对象引用
栈
- 存放基本变量类型(会包含这个基本类型的具体数值)
- 引用对象的变量(会存放这个引用在堆里面的具体地址)
方法区
- 可以被所有的线程共享
- 包含了所有的class和static变量
三种初始化
静态初始化
int[] a = {1,2,3};
Man[ ] mans = {new Man(1,1),new Man(2,2)};
动态初始化
int[]a = new int[2];
a[0]=1;
a[1]=2;
数组的默认初始化
- 数组是引用类型,它的元素相当于类的实例变量,因此数组-经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
Arrays类
- 数组的工具类java.util.Arrays
- 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一 些基本的操作。
具有以下常用功能: - 给数组赋值:通过fill方法。
- 对数组排序:通过sort方法,按升序。
- 比较数组:通过equals方法比较数组中元素值是否相等。
- 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
- 输出字符串:toString
稀疏数组
- 当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。
稀疏数组的处理方式是: - 记录数组一共有几行几列,有多少个不同值
- 把具有不同值的元素和行列及值记录在-个小规模的数组中,从而缩小程序的规模
(行 列 有效数据)
学习java的第五周的更多相关文章
- 对于“2017面向对象程序设计(Java)第五周工作总结”存在问题的反馈及本周教学计划
一:问题反馈 “上周我们学习的新内容主要是第五章,并对第四章内容做了巩固.从学生上交的实验报告完成情况以及学习Java心得博客中的反馈可以看出,学生对构造器.重载.超类.多态.抽象类这几个概念理解的不 ...
- 2017面向对象程序设计(Java)第五周工作总结
时光如逝,岁月如梭,不知不觉已经开学五个星期了.在代老师的带领下,我们一步一步走近Java,也渐渐的适应了翻转课堂的个性化教学,此时此刻相信同学们对Java也有了更加深入的了解.下面我对第五周的助教工 ...
- 学习java知道这五个网站就够了
"这个国家的每个人都应该学习编程计算机,因为它教你如何思考." 当乔布斯几年前这么说时,他再次被证明是一个真正的有远见的人. 好吧,这很难反驳!如今,编程比以往任何时候都更加蓬勃发 ...
- 系统学习 Java IO (十五)----字符读写 Reader/Writer 其他子类
目录:系统学习 Java IO---- 目录,概览 跟踪行号的缓冲字符输入流 LineNumberReader LineNumberReader 类是一个 BufferedReader ,用于跟踪读取 ...
- 201521123078 《java》第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句 ...
- 201621123037 《Java学习设计》 第五周学习总结
Week05-继承.多态.抽象类与接口 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键词:接口."has-a".多态.comparable.Compa ...
- 201521123025<java程序设计>第五周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...
- Java程序设计第五周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...
- 《Java》第五周学习总结20175301
https://gitee.com/ShengHuoZaiDaXue/20175301.git 本周我学习了第六章的内容接口 重要内容有 理解接口 接口参数 面向接口编程 abstract类与接口的比 ...
随机推荐
- elementUI 级联选择框 表单验证
今天遇到了一个需求:进行级联选择框的表单验证,突然有点懵逼.感觉应该和正常的表单验证类似,但不是很清晰,后来还是在博客园找到了相关参考文章. 先上代码: <el-form :model=&quo ...
- 题解 SP1812 【LCS2 - Longest Common Substring II 】
对于本题这样的多字符串的子串匹配问题,其实用广义后缀自动机就可以很好的解决,感觉会比普通的后缀自动机做法方便一些. 首先记录出每个节点被多少个字符串更新,也就是记录每个节点有多少个字符串能到达它,可以 ...
- From 表单序列化为json对象(代码片段)
$.fn.serializeJson=function(){ var serializeObj={}; var array=this.serializeArray(); $(array).each(f ...
- MySQL之高级操作
新增数据: 基本语法: insert into 表名 [(字段列表)] values(列表值) 在数据插入的时候,假设主键对应的值已经存在,插入一定会失败 主键冲突: 当主键存在冲突的时候(Dupl ...
- Centos7安装Docker1.9.1
1.先检查是否安装旧版本docker [root@registry ~]# rpm -qa|grep docker 我这里没有安装,如果安装,请rpm -e 卸载2.编辑docker.repo文件,写 ...
- 加载Properties文件工具类:LoadConfig
import javax.servlet.http.HttpServletRequest; import javax.ws.rs.GET; import javax.ws.rs.Path; impor ...
- 快速构建一个springboot项目(一)
前言: springcloud是新一代的微服务框架而springboot作为springcloud的基础,很有必要对springboot深入学习一下. springboot能做什么? (1)spri ...
- MySQL-安装配置篇
一.MySQL二进制安装包安装 1.环境初始化 1)创建目录mkdir /app/database --安装路径 mkdir /data/3306 --存放数据路径 mkdir /binlog/330 ...
- Asp.Net Core 3.0的依赖注入改变
Asp.Net Core 3.0出来很久了,预览版的时候就被我偶像Lemon大人,带着尝试摸索了一下这个 那么Asp.Net Core 3.0和Asp.Net Core 2.X到底有哪些区别呢? As ...
- 31-关键字:final
final:最终的 1.可以用来修饰:类.方法.变量 2.具体的: 2.1 final 用来修饰一个类:此类不能被其他类所继承. * 比如:String类.System类.StringBuffer类 ...