Java的基本程序设计结构总结

1.1 一个简单的Java应用程序

 这是我第三遍看这本书,第一遍很仓促,不求甚解且一笔带过,这也和我当时的心态有关系,当时因为刚接手Java所以很多东西都很想快点知道,这种囫囵吞枣的结局就是似懂非懂,然后我遇到了一个带我的师傅开始着手做Java项目,这时候发现Java基础薄弱,开始看这本书的第二遍,第二遍陆陆续续的看的差不多了,以为自己懂了,但是一问还是三不知。缺乏总结还是不行,这是第三遍仔细总结这本书,通过这一遍的总结,应该会有更系统和更全面的认识。以后还会有第四遍第五遍...

public class ClassOne {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

 这个程序共有三行,接下来会进行每行说明;

  • public 访问修饰符;用于控制程序其他部分对这段代码的权限级别
  • class 类;Java程序设计者将程序包含在类中,用class代表这是一个类。Java中的类需要详细解释,这个类我知道的太少了;
  • class后面紧跟着这个类的类名。这一点无需过多解释,就像喝水的杯子就叫水杯,茶壶之类的;
  • 类里面包含了一个代码块,叫方法。方法也有一个修饰符,代表程序中的其他部分对这个方法的访问权限级别;方法有一个方法名字,代表叫什么名字,方便我们记忆它;还有一个static void ,static代表静态的,为什么会有它呢:它修饰了这个这个方法为静态的,只能用类名来调用,另外在内存中是一个单独的区域保存这个方法,会在对象创建的时候自动初始化。void表示这个方法没有返回值。与static表示静态方法类似,方法还有其它的修饰符,这个地方需要补充;void返回值也可以扩展,方法还是有什么返回值,分别代表什么意思;
  • 方法名后面有个括号,里面还有两个部分,代表这个方法接受的参数类型和参数的临时名字;
  • 方法体用一个对大花括号括起来了,里面包裹着一条封号结尾的语句,这句的意思是输出“Hello World!”

2.1 Java的注释

//注释掉这一行
/*
  注释掉很多行中的第一行
  注释掉很多行中的第N行
*/

 Java的注释就这两种,注释单行,注释整块;

3.1 数据类型

 数据类型,生活中我们会用到很多种,比如整数,小数之类的。Java中的基础数据类型共有8种;

  • 整型
     整型包括:int,short,long,byte
     用于记录整数的物品,比如人,车,船...
  • 浮点型
     浮点型包括:double,float
     用于记录带小数的物品,比如钱,长度...
  • 字符类型
     字符类型包括:char
     char类型用于表示单个字符,平时用的不多,string用的比较多。
  • 布尔类型
     布尔类型包括:true,false
     表示真或假。

4.1 变量

 是不是先讲变量,再讲类型会好一些。我们可以先认识变量,然后变量可以有很多种类型,然后再介绍类型。变量和类型就是一对;

    int a = 0;
    double b = 1.0;
    float c = 2.0;
    boolean d = true;
    char e = 'A';

 变量用来保存数据,Java中变量一定要先申明并初始化再使用,否则编译器会报错。
 变量代表变化的量,常量的意思是不变的量。在Java中常量经常用final修饰,变量名大写。final修饰的常量只能被赋值一次,赋值之后就不能再修改。

public class ClassOne {
    
    public static final int CON = 10;
    
    public static void main(String[] args) {
        System.out.println(CON);
        System.out.println("Hello World!");
    }
}

5.1运算符

 Java中运算符有下列几种

+(加法)
-(减法)
*(乘法)2*3=6
/(除法) 16%3=5
%(取余) 16%3=1

 Java中用于计算的类Math,有丰富的数学运算方法

public class ClassOne {

    public static void main(String[] args) {
        double x = 4;
        double sqrt = Math.sqrt(x);
        System.out.println(sqrt);
    }
}
  • 类型之间可以转换,如int转double,有时候采用强制类型转换会发生精度丢失问题,需要注意。
  • 运算符还有一些自增自减,结合运算等...
i++
i--
++i
--i
总结:加在前,使用之前就加;加在后,使用之后再加;
i +=1;等价于 i = i+1;
  • 关系和布尔运算符
&&,||
a+b>c;
  • 位运算符,位运算符平时使用的很少,暂时就了解吧。
&(and),|(or),~(not),^(xor)
  • 枚举类型,这个类型在项目中经常用到。
public class ClassOne {
    enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE}

    public static void main(String[] args) {
        System.out.println(Size.LARGE);
        System.out.println(Size.valueOf("LARGE"));
    }
}
输出:
LARGE
LARGE

Process finished with exit code 0

6.1 字符串

  • 字符串用的很多,但是字符串并没有真的去了解透彻它。Java中没有字符串这种类型,它是由字符类型演变而来,Java定义了一个类,命名为String,String用一对双引号括起来表示一个String的类对象,即一个实例。
  • 字符串有获取字串的函数substring,字符串还可以拼接(+号拼接),字符串不可变,检测字符串是否相等的函数(equals),空串与null串。
//字符串
public class ClassOne {

    public static void main(String[] args) {
        String a = "12";
        String b = "3";
        //字符串拼接
        String c = a+b;

        //字符串截取子串
        String substring = a.substring(0, 1);

        //检测字符串是否相等
        boolean equals = a.equals(b);
        System.out.println(c);
        System.out.println(substring);
        System.out.println(equals);
    }
}
输出:
123
1
false

Process finished with exit code 0
  • substring是截取字符串,会新new一个char类型数组,然后采用数组的copy方法将数据copy出来,然后放进数组放回一个新的char数组。
  • equals会先比较是否都是String类型的对象,再比较长度是否相等,再比较每一位的值是否相等。
  • String类没有提供修改字符串的方法,所以在Java中字符串是不可以被修改的,修改一个字符串远比新建一个字符串的效率低。
  • 空串与null。空串就是字符串内容为空即长度为0的字符串,null是String设计的时候允许放入的一个特殊的值。

7.1 输入输出

  • 输入输出:涉及的类为:Scanner,和System.out.print(x)
import java.util.Scanner;

public class ClassOne {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("what time is it now?");
        String s = scanner.nextLine();
        System.out.printf("Oh,thx,it's %s",s);
    }
}
输出:
what time is it now?
21:55
Oh,thx,it's 21:55
Process finished with exit code 0

8.1 控制流程

  • 块的作用域是块内
  • 条件语句:if else
  • 循环:while,for,foreach
  • 中断控制流程语句:break,continue

9.1 大数值

  • Java设计者为了满足用户对大数值的需求,提供了下面两个大数值类型
BigInteger
BigDecimal
//算数运算符无法处理大数值,需要用它自己自带的add和multiply方法。
//将普通数值转为大数值,valueOf
public class ClassOne {

    public static void main(String[] args) {
        int a = 1;
        BigInteger bigInteger = BigInteger.valueOf(a);
        BigInteger b = BigInteger.valueOf(a);
        BigInteger add = bigInteger.add(b);
    }
}

9.1 数组

  • 数组是一种数据结构,目的是用来存放同一类型值的集合,(数组是对象,不是由类实例化来,而是由JVM创建,父类就是Object)。数组声明如下:
public class ClassOne {

    public static void main(String[] args) {
        Integer[] integers = new Integer[3];
        int[] ints = new int[3];
        boolean[] booleans = new boolean[3];
        Boolean[] booleans1 = new Boolean[3];
    }
}

  • 数值型数组初始化为0,对象数组初始化为null,布尔数组初始化为false;
  • 数组的初始化,排序,拷贝,多维数组,不规则数组,作为命令行参数这里就不再写了,不知道的时候翻阅资料就行。

---总结:第一章从一个简单的Java程序开始,带我们熟悉了什么是访问修饰符,什么是类,什么是方法,什么是数据类型,Java中有多少种数据类型,什么是变量,变量的使用方式是什么,怎么初始化,什么是运算符,运算符有优先级,什么是字符串,字符串有什么操作,字串,拼接,相等,字符串不可变(字符串其实是一个类,它没有提供修改字符串的方法),空串与null,输入输出Scanner。流程控制是什么,怎么中止循环,两个大数值,BigInteger 和 BigDecimal,是什么是数组,数组是对象吗,数组是一个集合。复制数组,深拷贝和浅拷贝。浅拷贝就是地址的引用相同了。什么是多维数组以及不规则数组。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容