zoukankan      html  css  js  c++  java
  • Java基础语法和基本数据类型

    Java基础语法

    一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。

    • 对象:对象是类的一个实例,有状态(属性)和行为(方法)。
    • :类是一个模板,他描述一类对象的行为和状态。
    • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
    • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

     

    基本语法

    编写Java程序时,应注意以下几点:

    • 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello和hello是不同的。
    • 类名:对于所有的类来说,类名的首字母应该大写。例如MyFirstJavaClass
    • 方法名所有的方法都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词名大写。例如deleteMyWord
    • 源文件名:源文件名必须和类名相同。
    • 主方法入口:所有的Java程序由public static void main(String []args)方法开始执行。

     

    Java标识符

    • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
    • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
    • 关键字不能用作标识符
    • 标识符是大小写敏感的
    • 合法标识符举例:age、$salary、_value、__1_value
    • 非法标识符举例:123abc、-salary

    Java修饰符

    和其他语言一样,Java可以用修饰符来修饰类中的方法(行为)和属性(状态)。主要有两类修饰符:

    • 访问控制修饰符:default,public,protected,private
    • 非访问控制修饰符:final,abstract,static,synchronized

    在后面的章节中我们会深入讨论Java修饰符。


    Java变量

    Java中主要有如下几种类型的变量:

    • 局部变量
    • 类变量(静态变量static)
    • 成员变量(非静态变量)

    Java数组

    数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。


    Java枚举

    Java5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的bug。

    例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。

    实例

     1 class FreshJuice{
     2 enum FreshJuiceSize{small,medium,large};
     3 FreshJuiceSize size;
     4 }
     5 
     6 public class FreshJuiceTest{
     7 public static void main(String []args){
     8 FreshJuice juice=new FreshJuice();
     9 juice.size=FreshJuice.FreshiJuiceSize.medium;
    10 }
    11 }
    View Code

    注意:枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。


    Java关键字


    Java注释

    类似于C/C++、Java也支持单行以及多行注释。注释中的字符将被Java编译器忽略。


    继承

    在Java中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。

    利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(subclass)。


    接口

    在Java中,接口可以理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。

    接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类(子类subclass)。


    Java源程序与编译型运行区别


    Java基本数据类型

    变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。

    内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。

    因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。

    Java的两大数据类型:

    • 内置数据类型
    • 引用数据类型

    内置数据类型

    Java语言提供了八种基本类型。六种数字类型(4个整数型,2个浮点型),一种字符类型,还有一种布尔型。

    实例

     1 public class PrimitiveTypeTest {  
     2     public static void main(String[] args) {  
     3         // byte  
     4         System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);  
     5         System.out.println("包装类:java.lang.Byte");  
     6         System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  
     7         System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  
     8         System.out.println();  
     9   
    10         // short  
    11         System.out.println("基本类型:short 二进制位数:" + Short.SIZE);  
    12         System.out.println("包装类:java.lang.Short");  
    13         System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);  
    14         System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);  
    15         System.out.println();  
    16   
    17         // int  
    18         System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);  
    19         System.out.println("包装类:java.lang.Integer");  
    20         System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  
    21         System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  
    22         System.out.println();  
    23   
    24         // long  
    25         System.out.println("基本类型:long 二进制位数:" + Long.SIZE);  
    26         System.out.println("包装类:java.lang.Long");  
    27         System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);  
    28         System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);  
    29         System.out.println();  
    30   
    31         // float  
    32         System.out.println("基本类型:float 二进制位数:" + Float.SIZE);  
    33         System.out.println("包装类:java.lang.Float");  
    34         System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);  
    35         System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);  
    36         System.out.println();  
    37   
    38         // double  
    39         System.out.println("基本类型:double 二进制位数:" + Double.SIZE);  
    40         System.out.println("包装类:java.lang.Double");  
    41         System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);  
    42         System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);  
    43         System.out.println();  
    44   
    45         // char  
    46         System.out.println("基本类型:char 二进制位数:" + Character.SIZE);  
    47         System.out.println("包装类:java.lang.Character");  
    48         // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台  
    49         System.out.println("最小值:Character.MIN_VALUE="  
    50                 + (int) Character.MIN_VALUE);  
    51         // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台  
    52         System.out.println("最大值:Character.MAX_VALUE="  
    53                 + (int) Character.MAX_VALUE);  
    54     }  
    55 }  
    View Code

    编译以上代码输出结果如下所示:

    Float和Double的最小值和最大值都是以科学计数法的形式输出的,结尾的“E+数字”表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14*103,3.14E-3就是3.14*10-3

    实际上,Java中还存在另外一种基本类型void,它也有对应的包装类java.lang.void,不过我们无法直接对它们进行操作。

    类型默认值


    引用类型

    • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如Employee、Puppy等。变量一旦被声明后,类型就不能被改变了。
    • 对象、数组都是引用数据类型。
    • 所有引用类型的默认值都是null。
    • 一个引用变量可以用来引用任何与之兼容的类型。
    • 例子:Site site=new Site("Runoob")。

    Java常量

    常量在程序运行时是不能被修改的。

    在Java中使用final关键字来修饰常量,声明方式和变量类似:

     final double PI =3.1415927; 

    虽然常量名也可以用小写,但是为了便于识别,通常使用大写字母表示常量。

    字面量可以赋给任何内置类型的变量。例如:

     byte a=68; char a='A'; 

    byte、short、int、long都可以用十进制、十六进制以及八进制表示。

    前缀0表示八进制;

    前缀0x表示十六进制。

     1 int decimal=100; 2 int octal=0144; 3 int hexa=0x64; 

    字符串常量和字符常量都可以包含任何Unicode字符。例如:

     1 char a='u0001'; 2 String a="u0001"; 

    Java语言支持一些特殊的转义字符序列。


    类型转换

    整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

    转换从低级到高级:

    数据类型转换必须满足如下规则:

    • 1.不能对boolean类型进行类型转换。
    • 2.不能把对象类型转换成不相关类的对象。
    • 3.在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
    • 4.转换过程中可能导致溢出或者损失精度,例如:
    int i=128;
    byte b=(byte)i;
    

    因为byte类型是8位,(-128——+127),所以当int强制转换为byte类型时,值128就会导致溢出。

    • 5.浮点数到整数的转换是通过舍弃小数得到的,而不是四舍五入,例如:

     (int)23.7==23; (int)-45.89f==-45 

    自动类型转换

    必须满足转换前的数据类型的位数要低于转换后的数据类型,例如:short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。

     1 public class ZiDongLeiZhuan{
     2 public static void main(String[] args){
     3 char c1='a';
     4 int i1=c1;
     5 System.out.println("char自动类型转换为int后的值为“+i1);
     6 char c2='A';
     7 int i2=c2+1;
     8 System.out.println("char类型和int计算后大的值等于”+i2);
     9 }
    10 }

    强制类型转换

    1. 条件是转换的数据类型必须是兼容的。
    2. 格式:(type)value  type是要强制类型转换后大的数据类型 
    1 public class QiangZhiZhuanHuan{
    2 public static void main(String[] args){
    3 int i1=123;
    4 byte b=(byte)i1;
    5 System.out.print("int强制类型转换为byte型后的值等于"+b);
    6 }
    7 }

    隐含强制类型转换

    1. 整数的默认类型是int。
    2. 浮点型不存在这种情况,因为在定义float类型时必须在数字后面跟上F/f。

    什么他妈的叫他妈的惊喜!
  • 相关阅读:
    动态页面技术(JSP/EL/JSTL)
    JavaWeb核心之Servlet
    会话技术Cookie&Session
    待整理
    二进制中1的个数(python)
    矩形覆盖(python)
    变态跳台阶(python)
    跳台阶(python)
    斐波那契数列(python)
    旋转数组的最小数字(python/c++)
  • 原文地址:https://www.cnblogs.com/2020yl/p/12236999.html
Copyright © 2011-2022 走看看