zoukankan      html  css  js  c++  java
  • java基础(个人学习笔记) A

    1.       声明long类型的变量 需要在数值的末尾+l/L。(不加L的话,貌似默认就是int型了。当给long赋值一个超过int范围的值的时候,会出问题。)

    2.  package java_study;

    public class 你好{

        public static void main(String [] args){
       /*
       1.以字母,数字,下划线_,$
       2.不能以数字开头
       3.严格区分大小写
       4.长度无限制
       5.不能是java中的关键字
          */
            System.out.println("汉字也能当类名");

        }
    }

    3.        

    /*

    跳转到对应的周几

    技能:认识switch

    switch(){

             case 常量:

                       逻辑

                       break;

             case 常量:

                       逻辑

                       break;

                       。。。。

             default:

                       逻辑;

              break;

             总结:1.switch(表达式)byte short int char String enum(枚举)

                         2.case 后面必须是常量 固定的值

                         3.case 常量不能重复 错误: case 标签重复

                         4.default是可选的(可有可无的)

                         5.防止语句块之间的穿透

                        

            

    }

    */

    4. /*

    逻辑运算符:

        &:两边的表达式都为true,结果才是true

        &&:两边的表达式都为true,结果才是true,如果前面的表达式为false不再计算后面的表达式

        |:两边的表达式一个为true,结果就是true

        ||:两边的表达式一个为true,结果就是true;

           如果前面的表达式为true,不再计算后面的表达式

    */

    class Home1{

        public static void main(String []args){

        //定义boolean类型的变量

        int x = 3;

        int y = 4;

        boolean b1 = y > x | ++x >--y;

        System.out.println(b1+" "+ x+"  "+y);

        x = 3;

        y = 4;

        b1 = y > x || ++x > --y;

        System.out.println(b1+" "+ x+"  "+y);

        }

    }

    5.

    //使用三目运算符,写出3个数内的最大数

    import java.util.*;

    class Home2{

        public static void main(String []args){

           //创建对象

           Scanner input = new Scanner(System.in);

           //创建3个数用于比较

           System.out.println("请输入第1个数");

           int num1 = input.nextInt();

           System.out.println("请输入第2个数");

           int num2 = input.nextInt();

           System.out.println("请输入第3个数");

           int num3 = input.nextInt();

           //比较

               //int d = num1>num2?num1:num2;

               //int maxNum = d>num3?d:num3;

               //             X     ?            Y                          Z

           int maxNum = num1 > num2 ?(num1 > num3 ? num1 : num3):(num2 > num3 ? num2 : num3);

           //输出结果

           System.out.println("最大值是 "+maxNum);

        }

    }

    6. /*

    交换两个数的位置

        5 = 2 + 3;

        2 = 5 - 3;

        3 = 5 - 2;

    */

    class Home3{

        public static void main(String []args){

           //定义两个数

           int a = 10;

           int b = 20;

            //输出交换前的结果

           System.out.println("a的值为 "+a+",b的值为 "+b);

           //交换

           a = a + b;

           b = a - b;//30 - 20;

           a = a - b;

           //交换后的结果

           System.out.println("a的值为 "+a+",b的值为 "+b);

        }

       

    }

    7. 一,如何拿到char类型的数据

           字符串.charAt(index);下标0开始

               String s  ="我是中国人";

               char c = s.charAt(2);

    二,循环

     

           1.求偶数的和

           2.每行输出5个

        1.初始化条件:执行一次并且不能省略

        2.循环条件:while ,do{}while();是否可以省略;  boolean类型

        3.循环体

        4.迭代条件:死循环

        1

        while(2){

        3

        4

        }

       

        1

        do{

        3

        4

        即使初始化条件不满足循环条件,也会执行一次循环体

        }while(2);

       

        for(1;2;4){

           3

        }

        流程控制语句:

        break:结束循环

        continue:结束本次循环并继续执行下一次循环

        return:结束一个方法

    三,嵌套循环:将一个循环作为另一个循环的循环体

        *******

        *******

        *******

        外层控制行数

        内层控制列数

     

       

    8. /*     

           do{}while;

           输出1~100内的偶数,每行输出5个

           2,4,6,8,10

           12,14,16,18,20

           1.判断是不不是偶数

           2.统计偶数的个数

           */

    class DoWhileTest2{

     

        public static void main(String [] args){

        //定义一个变量,初始化条件

           int i = 1;

           //定义变量统计个数

           int count = 0;

           do{

           //循环体

           if(i%2==0){

               //print不换行

               System.out.print(i+" ");

               //统计偶数个数

               count++;

               //每行输出5个 偶数个数==5时换行

               if(count%5==0){

                  System.out.println();

               }

           }

           //迭代条件

           i++;

           }while(i<=100);

        //输出结果

        System.out.println("1~100内偶数的个数是 "+count);

       

        }

    }

    9. /*

    流程控制语句

        break:结束循环 END

        continue:结束本次循环,继续循环  END

        return:结束一个方法

     注意:流程控制语句下不能写逻辑

           无法访问的语句

    */

    class LoopTest{

        public static void main(String [] args){

       

           for(int i = 1;i<=10;i++){

               if(i==5){

                  //break;

                  continue;

                  //return;

                  System.out.println("如果能输出,给你一百万!!");

               }

               System.out.println(i);

           }

           System.out.println("END");

        }

    }

     

     

    10.eclipse里 main    Alt +/ 快捷输入  Sysout

    F3 查看源码   Alt+←返回

    11.

    1.增强for循环和iterator遍历的效果是一样的,也就说

    增强for循环的内部也就是调用iteratoer实现的(可以查看编译后的文件),但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。

    2.ArrayList由于使用数组实现,因此下标明确,最好使用普通循环。

    3.而对于 LinkedList 由于获取一个元素,要从头开始向后找,因此建议使用 增强for循环,也就是iterator。

    /*

     

    数组的遍历

    数组的有序指的是索引的顺序

    两种循环对比:

        1.增强for循环

          for(数据类型标识符:数组名){

             System.out.println(标识符);

          }

           简单

        2.普通循环 能够操作下标

    */

    class Arrays2{

        public static void main(String [] args){

       

           //定义一个数组

           int [] arr = {12,45,23,10,98,78,100};

           //arr[0],arr[1],

           //遍历方式一

           for(int i = 0;i<arr.length;i++){//0~6

              

               System.out.println(arr[i]);

           }

          

           //第二种方式增强for循环

           for(int num:arr){

               System.out.println(num);

           }

          

          

        }

       

    }

     

    12. class ValueTest1{

        public static void main(String [] args){

           int num = 10;

           System.out.println("方法调用前num的值 "+num);//10

           changeValue(num);

           System.out.println("方法调用后num的值 "+num);//10

       

        }

        public static void changeValue(int num){//int num = num

           num = 20;

           System.out.println("方法调用中num的值 "+num);//20

        }

    }

    13.

    class ValueTest2{

             public static void main(String [] args){

                       String []student = new String[3];

                       for(int i = 0;i<student.length;i++){

                                student[i] = "范冰冰";

                       }

                       int num = 10;

                       for(String s:student){

                                System.out.println(s);

                       }

                       System.out.println("方法调用前 "+student[0]);//范冰冰

                       changeValue(student);

                       System.out.println("方法调用后 "+student[0]);//周杰伦

             }

             //声明方法

             public static void changeValue(String[] student){

                       student[0] = "周杰伦";

                       student[1] = "周杰";

                       System.out.println("方法调用中 "+student[0]);//周杰伦

             }

            

    }

    总结:

    1、对于基本类型参数,在方法体内对参数进行重新赋值,并不会改变原有变量的值。

    2、对于引用类型参数,在方法体内对参数进行重新赋予引用,并不会改变原有变量所持有的引用。

    3、方法体内对参数进行运算,不影响原有变量的值。

    4、方法体内对参数所指向对象的属性进行操作,将改变原有变量所指向对象的属性值。

    也就是说,对于基本数据类型,实现的是传值,只是个形参,不会改变原有值。对于引用数据类型,对这个引用进行操作,其实也是相当于对形参的操作,不会改变原来的引用。但是,当对这个引用的属性进行操作的时候,相当于CPP中的传址调用,可以改变这个引用的属性的值。

    Eg:

    public class Main {

           private static void getMiddleOne(boolean b, Boolean boo, Boolean[] arr){

                  b = true;  //形参,不会改变原有值

                  boo = new Boolean(true);  //引用变量的直接操作相当于值传递,不会改变原来的引用变量

                  arr[0] = true;  //引用变量的属性的操作,会改变原有引用的属性,相当于传址调用

           }

          

           //测试

           public static void main(String[] args) {

                  boolean b = false;

                  Boolean boo = new Boolean(false);

                  Boolean[] arr = new Boolean[]{false};

                  getMiddleOne(b, boo, arr);

                 

                  System.out.println(b); 

                  System.out.println(boo.toString());

                  System.out.println(arr[0]);

                  /**

                   * output:

                   *         false

                   *         false

                   *          true

                   */

           }

    }

    14.

    /*

     

    流程控制语句深入

    在循环外侧+label(可以自定义)

    break label:label在哪里就结束哪层循环

    continue:结束内层循环,继续外层循环

    1234 1234 1234 1234 1234 1234 1234 1234 1234 1234

    */

    class BreakTest{

        public static void main(String [] args){

       

           label:for(int i = 1;i<=10;i++){

          

               for(int j = 1;j<=10;j++){

                  if(j==5){

                      //break ;

                      continue label;

                  }

               System.out.print(j);

               }

               System.out.println();

           }

        }

     

    }

     

    15.

    class JinZhi{

    /*

    将一个10进制的数转为二进制数

           1.定义一个10进制数

           2.除以2取余数  取商

           3.将商作为被除数继续 取余数,取商

           4.当商为0时终止

    5.注意:result类型为String

    */

           public static void main(String [] args){

                  //定义一个数

                  int num = 6;//110

                  String result = "";

                 

                  //处理逻辑

                  while(num!=0){

                         //取余数

                         int yuShu = num%2;//0 , 1,  1

                         //让最后输出(最新的数据)的位于字符串的最前面

                         result = yuShu+result;//0+

                        

                         System.out.println(result);

                         //取商

                         int shang = num/2;

                 

                         //将商作为被除数

                                num = shang;

                 

                  }

                  //输出解果

          

           }

    }

  • 相关阅读:
    架构设计-MVVM架构
    架构设计-DDD领域驱动设计模式
    架构设计-SOA面向服务架构
    架构设计-MVC
    函数
    冒泡排序
    乘法表和表格乘法表
    三元表达式
    一元运算符
    while 循环语法
  • 原文地址:https://www.cnblogs.com/binshen/p/7524994.html
Copyright © 2011-2022 走看看