The fourth day

switch结构:多选择结构
if - else if - else 与 switch的区别:if- else if - else (布尔表达式区间),switch表示值;
 1  //测试switch语句
 2 public class TestSwitch {
 3  public static void main(String[] args){
 4   int month = (int)(1+12*Math.random());
 5      System.out.println("月份:"+month);
 6      switch(month){
 7      case 1:
 8       System.out.println("一月份,过年了!");
 9       //break;
10      case 2:
11       System.out.println("二月份,开春了!");
12       //break;
13      default:
14             System.out.println("我是其他月份!");
15             break; 
16      } 
17  }
18 }

 


注意:break的使用
while(布尔表达式){
 循环体;
}
 1 public class TestWhile {
 2  public static void main(String[] args) {
 3   //计算1+2+3+……+100的累加的和,5050.
 4      //暴力
 5   int i=1, sum = 0;
 6   while (i<=100){
 7    sum= sum+i;
 8    i++;
 9    System.out.println(sum);   //表示执行过程
10   }
11   //System.out.println(sum);
12  }
13 }

for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。

 1 public class TestFor {
 2  public static void main(String[] args) {
 3   //计算1到100的整数和
 4   int i,sum=0;
 5   for (i=1;i<=100;i++){
 6    sum=sum+i;
 7   }
 8   System.out.println("sum="+sum);             //双引号里的是字符串 ,syso在面里面
 9  }
10 }

 

用for 输出:1 1 1 1 1
   2 2 2 2 2
   3 3 3 3 3
   4 4 4 4 4 
 1 public class TestWhile {
 2  public static void main(String[] args) {
 3   int i,j;
 4   for (i=1;i<=5;i++){
 5    for (j=1;j<=5;j++){
 6     System.out.print(i+" ");
 7                 //print 里面必须有内容," "里面是空格 得出结果是  11111  22222  33333 44444  55555
 8    }
 9    System.out.println();
10  //再换行,得出结果;
11   }
12  }
13 }
 1 //乘法口诀,用for
 2 public class TestFor {
 3  public static void main(String[] args) {
 4   int i,j,s=0;
 5   for (i=1;i<=9;i++){
 6    for(j=1;j<=i;j++){
 7     s=j*i;
 8     System.out.print(j+"*"+i+"="+s+" \t");//横向跳到下一制表符位置
 9    }
10    System.out.println();
11   } 
12  }
13 }

 

break终止整个循环,continue终止本次循环。
带标签的break和continue:
 goto 是 Java的一个保留字,但并未在Java语言中得到正式使用;
 Java没有goto语句。
方法的定义_形参_实参_返回值_语句块:方法就是一段用“来完成特定功能的代码片段”,类似于其它语言的函数
  方法声明格式:
 【修饰符1   修饰符2  _】    返回值类型      方法名(形式参数列表){
  Java语句:_  _  _
  }
  方法的调用方式:
      对象名.方法名(实参列表)
      方法的详细说明
      1.形式参数:在方法声明时用于接收外界传入的数据。
      2.实参调用方法是实际传给方法的数据。
      3.返回值:方法在执行完毕后返还给调用它的环境的数据。
      4.返回值类型:事先约定的返回值的数据类型,如无返回值,必须显示指定为void。
//测试方法的基本使用
 1 public class TestMythod {
 2   public static void main(String[] args) {
 3    //通过对象调用普通方法
 4  TestMythod tm= new TestMythod();     //类创建对象
 5  tm.printSxt();                       //调用对象的方法
 6  int c = tm.add(30, 40, 50)+1000;   //实际参数
 7  System.out.println(c);
 8 }
 9   void printSxt(){
10    System.out.println("北京尚学堂…");
11    System.out.println("上海尚学堂…");
12    System.out.println("广州尚学堂…");
13   }
14   int add(int a , int b, int c){//形式参数
15    int sum= a+b+c;
16    System.out.println(sum);
17    return sum;   //return 两个作用:1.结束方法的运行;2.返回值
18   }
19 }

 


    注意事项:
       1.实参的数目,数据类型和次序必须和所调用的方法声明的形式参数列表匹配;
       2.return语句终止方法的运行并指定要返回的数据;
       3.Java中进行方法调用中传递参数时,遵循值传递的原则(传递的都是参数的副本);
       4.基本类型传递的是该数据值得copy值;
       5.引用类型传递的是该对象引用的copy值,但指向的是同一个对象。
方法的重载:overload,
      实际是完全不同的方法,只是名称相同
递归算法_递归头_递归体(本质:自己调自己,典型例子:阶乘,如算5的阶乘)
   1.定义递归头。 什么时候不调用自身方法,如果没有头,将陷入死循环,也就是递归的结束条件;
   2.递归体。 什么时候需要调用自身方法。
面向过程和面向对象的区别都是对软件分析,设计和开发的一种思想,它指导着人们以不同的方式去分析,设计和开发软件。
面向过程思想思考问题是,我们首先思考“怎么按步骤实现?”并将步骤对应成方法,一步一步,最终完成。
这个适合简单任务,不需要过多协作的情况下。比如,如何开车?
面向过程适合简单,不需要协作的事物。但是当我们思考比较复杂的问题,比如“如何造车?”,就会发现列
出1234这样的步骤,是不可能的。那是因为,造车太复杂了,需要很多协作才能完成。此时面向对象思想就应运而生了。
面向对象(object)思想更契合人的思维模式。我们首先思考的是“怎么设计这个事物?”
比如思考造车,我们就会先思考“车怎么设计?”,而不是怎么按步骤造车的问题。
对象是什么_对象和数据管理
       事物的发展总是遵循“量变引起质变”的哲学原则;
       数据管理: 数据无管理,数据管理和企业部门制,对象和企业项目制
 类:我们叫做class,对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。
类中创建对象
类中创建对象和方法的实例:
 1 public class TestLei {
 2 void study(){
 3  System.out.println("现在必须好好学习");
 4 }
 5 void work(){
 6  System.out.println("然后好好工作");
 7 }
 8 void time(){
 9  System.out.println("剩下的时间是安详");
10 }
11 TestLei(){           //系统自动省略
12  }
13 public static void main(String[] args) {
14  TestLei  lei = new TestLei();//有new的就是代表自动创建一个对象,(TestLei(){}表示构造方法,
15 用于创建这个类的对象,无参的构造方法可以由系统自动创建)
16  lei.study();
17  lei.work();
18  lei.time();
19 }
20 }

 

Java虚拟机的内存可以分为三个区域:栈stack,堆heap,方法区methond area
栈的特点如下:
      1.栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量,操作数,方法出
         口等)
      2.JVM 为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数,局部变量等)
      3.栈属于线程私有,不能实现线程间的共享!
      4.栈的存储特性是“先进后出,后进先出”
      5.栈是由系统自动分配,速度快,栈是一个连续的内存空间!
     
堆的特点如下:
      1.堆用于“创建好的对象和数组”(数组也是对象)
      2.JVM只有一个堆,被所有线程共享
      3.堆是一个不连续的内存空间,分配灵活,速度慢!
方法区(又叫静态区)特点如下:
      1.JVM只有一个方法区,被所有线程共享;
      2.方法去实际也是堆,只是用于存储类,常量相关的信息!
      3.用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】,静态变量,字符串常量等)
posted @ 2019-01-20 08:57  齐方  阅读(255)  评论(0编辑  收藏  举报