java学习(一)

目录

java基础

  1. 编写Java程序

    • java代码必须驻留在一个类中
    • java源文件名必须和类名相同。
    • java源代码文件扩展名必须为.java
    • 所有的Java 程序由public static void main(String []args)方法开始执行。
  2. 编译java程序

  3. 运行java程序

    • java 类名(不包含class扩展名)

基本语法

java标识符

  • 标识符必须不是java关键字,不能是一个布尔字面值,不能是空字面值
  • 标识符必须在其作用域内是唯一的。
  • 标识符是java字母和数字的一个长度没有限制的序列。
  • 大小写敏感:标识符Hello与标识符hello是不同

所有的标识符都应该以字母(A-Z或者a-z),美元符(\()、或者下划线(_)开始, 之后可以是字母(A-Z或者a-z),美元符(\))、下划线(_)或数字的任何字符组合。
合法标识符举例:row_count、$salary、_x3、x2、__1_value;非法标识符举例:2x、-salary

java变量

变量类型###

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

变量声明

		byte x;

		int rowCount;

		char;

		int a,b 等价于 int a; int b;

		char x = 'd';   

变量的命名惯例

  • 变量名应以小写字母开头且混合大小写;

  • 后续的单词都以一个大写的字母开头,不应以_或$开头

java常量

  • java中常量,一旦赋值之后,其值不能修改。赋值时候不能超过类型的最大值。

  • 常量名通常都是大写的

  • 单词之间用下划线隔开

Java 基本数据类型#

内置数据类型##

  • byte:

    byte 数据类型是8位、有符号的,以二进制补码表示的整数;

    最小值是 -128(-2^7);

    最大值是 127(2^7-1);

    默认值是 0;
    

    byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;

    例子:byte a = 100,byte b = -50。

  • short:

    short 数据类型是 16 位、有符号的以二进制补码表示的整数

    最小值是 -32768(-2^15);

    最大值是 32767(2^15 - 1);

    Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;

    默认值是 0;

       例子:short s = 1000,short r = -20000。
    
  • int:

     int 数据类型是32位、有符号的以二进制补码表示的整数;
    
     最小值是 -2,147,483,648(-2^31);
    
     最大值是 2,147,483,647(2^31 - 1);
    
     一般地整型变量默认为 int 类型;
    
     默认值是 0 ;
    
     例子:int a = 100000, int b = -200000。
    
  • long:

      long 数据类型是 64 位、有符号的以二进制补码表示的整数;
    
      最小值是 -9,223,372,036,854,775,808(-2^63);
    
      最大值是 9,223,372,036,854,775,807(2^63 -1);
    
      这种类型主要使用在需要比较大整数的系统上;
    
      默认值是 0L;
    
      例子: long a = 100000L,Long b = -200000L。
    
      **注:**"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
    
  • float:

      float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
    
      float 在储存大型浮点数组的时候可节省内存空间;
    
      默认值是 0.0f;
    
      浮点数不能用来表示精确的值,如货币;
    
      例子:float f1 = 234.5f。
    
  • double:

      double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
    
      浮点数的默认类型为double类型;
    
      double类型同样不能表示精确的值,如货币;
    
      默认值是 0.0d;
    
      例子:double d1 = 123.4。
    
  • boolean:

      boolean数据类型表示一位的信息;
    
      只有两个取值:true 和 false;
    
      这种类型只作为一种标志来记录 true/false 情况;
    
      默认值是 false;
    
      例子:boolean one = true。
    
  • char:

      char类型是一个单一的 16 位 Unicode 字符;
    
      最小值是 \u0000(即为0);
    
      最大值是 \uffff(即为65,535);
    
      char 数据类型可以储存任何字符;
    
      例子:char letter = 'A';。
    

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

引用数据类型##

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

Java类型转换#

  • 自动类型转换(加宽转换)

    必须满足转换前的数据类型的位数要低于转换后的数据类型

  • 强制类型转换(收窄转换)

  • 隐含强制类型转换

注:

  1. 不能对boolean类型进行类型转换。
  2. 不能把对象类型转换成不相关类的对象。
  3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
  4. 转换过程中可能导致溢出或损失精度。
  5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

java注释

public class HelloWorld {
/* 这是第一个Java程序
 *它将打印Hello World
 * 这是一个多行注释的示例
 */
public static void main(String []args){
   // 这是单行注释的示例
   /* 这个也是单行注释的示例 */
   System.out.println("Hello World"); 
}

}

操作符#

  • 自增操作符
  • 逻辑取反操作符
  • 位取反操作符
  • 算术操作符

java语句#

  • 条件语句

  • 循坏语句

    • while循环
    • do...while循环

while循环只要布尔表达式为 true,循环就会一直执行下去。如果不满足条件,则不能进入循环。

但有时候我们需要即使不满足条件,也至少执行一次。

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

for循环

`for(初始化; 布尔表达式; 更新) {
//代码语句
}`

`for(声明语句 : 表达式)
{
//代码句子
}`
  • break语句

    • break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

    • break 跳出最里层的循环,并且继续执行该循环下面的语句。

    • continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。

    • 在 for 循环中,continue 语句使程序立即跳转到更新语句。

    • 在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

  • switch case语句

    • switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

    • switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

    • case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。

    • 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。

    • 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

    • switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

    • 如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。

测试反思#

强制类型转换问题


s+1:属于int类型

所以程序报错不能将类型int转换为类型short,必须强制转换

a=(short)(a+1);


运算符+=隐藏了一个强制类型转换

public class Test {

    public static void main(String[] args) {
        short a=1;
        byte b=1;
        a=(short)(a+1);
        b+=1;
        System.out.println(a);
        System.out.println(b);
    }
}

输出结果都为2.

类型最大值

System.out.print( "Integer.MIN_VALUE == -Integer.MAX_VALUE:"+(Integer.MIN_VALUE == -Integer.MAX_VALUE ));

输出为FALSE

posted on 2019-03-03 13:52  20189214李熹桥  阅读(241)  评论(0编辑  收藏  举报

导航