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的第五周的更多相关文章

  1. 对于“2017面向对象程序设计(Java)第五周工作总结”存在问题的反馈及本周教学计划

    一:问题反馈 “上周我们学习的新内容主要是第五章,并对第四章内容做了巩固.从学生上交的实验报告完成情况以及学习Java心得博客中的反馈可以看出,学生对构造器.重载.超类.多态.抽象类这几个概念理解的不 ...

  2. 2017面向对象程序设计(Java)第五周工作总结

    时光如逝,岁月如梭,不知不觉已经开学五个星期了.在代老师的带领下,我们一步一步走近Java,也渐渐的适应了翻转课堂的个性化教学,此时此刻相信同学们对Java也有了更加深入的了解.下面我对第五周的助教工 ...

  3. 学习java知道这五个网站就够了

    "这个国家的每个人都应该学习编程计算机,因为它教你如何思考." 当乔布斯几年前这么说时,他再次被证明是一个真正的有远见的人. 好吧,这很难反驳!如今,编程比以往任何时候都更加蓬勃发 ...

  4. 系统学习 Java IO (十五)----字符读写 Reader/Writer 其他子类

    目录:系统学习 Java IO---- 目录,概览 跟踪行号的缓冲字符输入流 LineNumberReader LineNumberReader 类是一个 BufferedReader ,用于跟踪读取 ...

  5. 201521123078 《java》第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句 ...

  6. 201621123037 《Java学习设计》 第五周学习总结

    Week05-继承.多态.抽象类与接口 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键词:接口."has-a".多态.comparable.Compa ...

  7. 201521123025<java程序设计>第五周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 1.2 ...

  8. Java程序设计第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 2. 书面作业 **代码阅读:Child压缩包内源代码 Child.java源代 ...

  9. 《Java》第五周学习总结20175301

    https://gitee.com/ShengHuoZaiDaXue/20175301.git 本周我学习了第六章的内容接口 重要内容有 理解接口 接口参数 面向接口编程 abstract类与接口的比 ...

随机推荐

  1. Python数据可视化基础讲解

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:爱数据学习社 首先,要知道我们用哪些库来画图? matplotlib ...

  2. java代码之美(17) ---Java8 LocalDateTime

    Java8 LocalDateTime 在java8之前我们在处理时间的时候都是用的Date,但它其实有很明显的缺点. 1.我们也会对日期做一些操作,比如加几天.加几分,当月的最后一天等等.有些计算实 ...

  3. 为什么在SpringBoot+maven的项目中,所引入的依赖包可以不指定依赖的版本号?

    当在Springboot项目中引入了spring-boot-starter-parent,则可以不用引入依赖包版本号,比如: <parent> <groupId>org.spr ...

  4. js读取其他网页内容(同源)

    通过xss第一次取得网页内容,然后获取到管理员账号页面进行二次盲打.js需要保留script部分其余去除. <html><p id='d1'></p> <sc ...

  5. 如何消灭飞机的“黑色十分钟”,AI来帮忙

    近年来,“AI的应用和落地”逐渐成了具化的关键词,它和很多事物很多行业结合在一起,形成了奇妙的“化学反应”.例如,在日常生活中,AI可以推送我们喜欢的新闻或视频,可以在拍照的时候识别场景提升照片的美感 ...

  6. R常用统计 - 相关关系分析

    数据格式 每行分别为表型和基因表达情况对应标量,每列分别为样品名的矩阵.假定前9列为phenotype,从第10行起为gene_id,编写简单for循环如下: script require(" ...

  7. Ribbon 负载规则替换

    1 添加规则类: 注意: 官方文档明确给出了警告: 这个自定义配置类不能放在 @ComponentScan 所扫描的当前包下以及子包下,否则自定义的配置类就会被所有的 Ribbon 客户端所共享,达不 ...

  8. logging日志基础示例

    import logging logger = logging.getLogger() # 获取日志对象 logfile = 'test.log' hdlr = logging.FileHandler ...

  9. metaclass 拦截类的创建,并返回

    def upper_attr(future_class_name, future_class_parents, future_class_attr): #遍历属性字典,把不是__开头的属性名字变为大写 ...

  10. CF582D Number of Binominal Coefficients 库默尔定理 数位dp

    LINK:Number of Binominal Coefficients 原来难题都长这样.. 水平有限只能推到一半. 设\(f(x)\)表示x中所含p的最大次数.即x质因数分解之后 p的指标. 容 ...