zoukankan      html  css  js  c++  java
  • Java的基本程序设计结构(一)

    与c++不同,java是纯面向对象的编程语言,java中的所有内容都包含在类中,包括数据成员和业务逻辑。而c++是支持面向对象的语言,c++即包括面向过程的特点,也支持面向对象的特点。在java中,类是最基础的元素。

    Java源代码文件以.java作为后缀,文件名与文件中的public类相同,一个java源文件中只能有一个public类,可以有多个非public类,只有public类才可以被程序的其他部分访问,非public类无法被非同一文件下的程序访问。.java文件被编译器编译后生成字节码文件,以.class作为后缀,执行时jvm调用解释器来执行字节码文件。Java应用程序都应该有main方法。在java中,函数被称为方法而不是函数。Java中所有的方法都应该属于某个类。Java程序没有返回值,当程序正常退出是返回值为0,如果想要返回其他值需要调用System.exit方法。Java同c++一样使用花括号“{”和“}”来分割块。

    Java中的基本数据类型

    Java是一种强类型语言,所谓强类型语言是指一个变量必须在声明时指定类型,一经确定类型,除非强制类型转换,否则变量的类型不变。(即使是强制类型转换,也只是转换到另一个变量,本身类型并不改变。)java中有8种基本的数据类型,分别是4种整型,2种浮点型,1中表示unicode字符编码的字符型char和1种表示真值的boolean型。

    整型:表示没有小数部分的数值,可以表示负数。

    int型:4字节;short型:2字节;long型:8字节 ;byte型:1字节,其中int型最常用,short型和byte型用于特殊的领域,比如底层的文件处理或者需要控制占用存储空间量的大数据组。Java中基本数据类型大小相同,与机器无关。同时java中没有无符号类型。

    Ps:与c/c++相比,java中的整型统一,而c/c++中整型的大小与平台相关。

    浮点型:表示有小数部分的数值,包括正负数。

    浮点数有两种类型,float和double类型。其中float为4字节,表示6~7位有效数字。double类型为8字节,表示15位有效数字。默认的浮点数类型为double,需要指明为float时需要在浮点数后加F。由于二进制系统无法精确表示1/10,因此浮点数计算有时不太精确,java中提供了BigDecimal类来处理不允许舍入误差的情况。

    char型:用于表示单个字符,通常用来表示字符常量,如’A’。

    java中的char表示unicode字符,char还有另一种表示方式,即u0000~uffff。u后表示字符的unicode字符编码。

    boolean类型:有两个值false和true,用来判断逻辑条件,java中整型值和布尔值不能互相转换。

    Java中的变量

    Java变量属于某个类型,声明变量需要指定类型。Java变量名是字母和数字组成的序列,以字母开头。Java中,字母的范围比较大,不只包括大小写字母,还包括‘_’,’$’等,数字也不仅包括0~9,也包括其他语言中表示数字的符号。(使用unicode编码的特点。)

    Java变量声明后需要显示初始化,使用未经初始化的变量是错误的。可以在一行中同时声明和初始化变量。(在c++中区分变量的声明和定义,int i=10为定义,extern int i为声明。Java中不区分。)

    Java中的常量

    Java中的常量使用final声明,常量在声明时初始化,一经初始化就不可以改变。Java中保留了const 关键字,但是没有使用。

    Java运算符

    自增与自减运算符:在表达式中,前缀和后缀自增(减)返回值不同,前缀返回改变后的数值,后缀返回改变前的值。

    逻辑运算符:逻辑与“&&”,逻辑或“||”,逻辑非“!”。逻辑与/或实现短路运算,类似于c++。

    三元运算符:?::

    位运算符:

    在处理整型数值时,可以直接对组成整型数值的各个位进行操作。位运算符包括‘&’,‘|’,‘~’,‘^’,分别是与,或,非,异或。作用于位模式下。

    利用2的幂次方的&运算可以屏蔽其他位,只保留特定的位,屏蔽技术。位与位或与逻辑与逻辑或非常相似,但是不按照短路方式。&,|作用于布尔值得到的结果也是布尔值。

    移位操作符,<<和>>,位模式左移和右移,左移动几位与右移动几位,>>>使用0来填充高位,>>使用符号位来填充高位。没有<<<。

    数值类型之间的转换:

    在程序运行时,有时需要进行数据类型之间的转换。合法的数值转换基本是小的数值类型向大的数值类型进行转换。但是也有可能损失精度。主要是int型向float转换,long向float或者double转换时有可能出现精度损失。合法的数值转换原则为:当两个操作数有double时向double转换,有float向float转换,有long向long转换,要是都没有,则都向int转换。

    强制类型转换,有时需要强制类型转换,当大的数值向小的数值转换时,很有可能会截断大的数值。另外不能将boolean类型转换为其他数值型,会出错。如果确实需要,可以b?1:0;

    运算符与优先级

    括号可以超越运算符的优先级。没有括号的情况下,按照给出的运算符的优先级次序进行计算。同一级别的运算符按照从左到右的次序进行运算,如果是右结合运算符则从右向左进行运算。

    枚举类型

    枚举包括有限个命名的值,如:

    enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};

    Size s=Size.MEDIUM;

    Size类型只能存储这个类型声明中给定的枚举值,或者null值。null表示这个变量没有设置任何值。

  • 相关阅读:
    共用体类型,结构体类型
    动态内存分配与指向它的指针变量
    向上转型,向下转型
    枚举类型中的构造方法、成员方法
    由setTimeout()里的this引出的this
    eclipse快捷键
    js中运算符的优先级
    关于js闭包杂记
    sublime在Mac osx下安装z-codeing(即emmet)
    利用js得到某个范围内的整数随机数
  • 原文地址:https://www.cnblogs.com/libs5510/p/4740694.html
Copyright © 2011-2022 走看看