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. MySQL数据库---数据库备份、视图、触发器、事物、存储过程、函数和索引

    备份 方法: 使用mysqldump实现逻辑备份 语法: mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql 单库备份: mysqldump -uroot - ...

  2. Oracle修改表类型方法

    有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar ...

  3. WBF交易所如何使用二次验证码/谷歌身份验证器

    一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接  WBF交易所如何使用二次验证码/谷歌身份验证器 二次验证码小程序于谷歌身份验证器APP的优势 1.无需下载app 2.验证码 ...

  4. Gradle系列之认识Gradle任务

    原文发于微信公众号 jzman-blog,欢迎关注交流. 前面几篇学习了 Gradle 构建任务的基础知识,了解了 Project 和 Task 这两个概念,建议先阅读前面几篇文章: Gradle系列 ...

  5. Java 匿名对象、内部类

    一.匿名对象 1.概念 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. public class Person{ public void eat(){ System.o ...

  6. SQLyog无操作一段时间后重新操作会卡死问题(解决办法)

    这种是因为一段时间不操作后,服务器将空闲连接丢弃了,而客户端(sqlyog)不知道,导致长时间无响应,而超时之后,sqlyog 使用了新的连接,所以又可以顺畅操作了. 将会话空闲时间默认改为自定义,填 ...

  7. 无法安装 VMware Tools。尝试访问安装 VMware Tools 所需的图像文件“/usr/lib/vmware/isoimages/linuxPreGlibc25.iso”时出错: 2 (No such file or directory)。请参考产品文档或知识库文章 2129825,了解关于如何获取该客户机操作系统的 VMware Tools 软件包的详细信息。

    无法安装 VMware Tools.尝试访问安装 VMware Tools 所需的图像文件"/usr/lib/vmware/isoimages/linuxPreGlibc25.iso&quo ...

  8. PHP pack() 函数

    实例 把数据装入一个二进制字符串: <?phpecho pack("C3",80,72,80);?>高佣联盟 www.cgewang.com 定义和用法 pack() ...

  9. C++模板沉思录(上)

    花下猫语: 在我们读者群里,最近出现了比较多关于 C++ 的讨论,还兴起了一股学习 C++ 的风气.樱雨楼小姐姐对 C++ 的模板深有研究,系统地梳理成了一篇近 4 万字的文章!本文是上篇,分享给大家 ...

  10. MySQL主从同步-原理&实践篇

    来源:Onegoleya 简栈文化 什么是mysql的主从复制? MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点 ...