Java语言基础(2)

1 包的概念

  把一个项目分割成几个模块,为每一个模块建立包,把该模块的.java文件统一放到对应包,通过包更好的管理.java文件,并且更好的分工合作。可以尽量避免出现.java文件重名现象。

  包命名的规则:
    com.公司名.项目名.模块名
  或者
    org.公司名.项目名.模块名
    eg:
      com.kalos.owen.login
      org.kalos.owen.reg

2 变量(二)
  1)同时定义相同类型的多个变量
    数据类型 变量名1,变量名2,变量名3...
    eg: int a,b,c;
    案例:Demo1

package com.kalos.demo;

public class Demo1 {
//编写一个main方法,定义4个int类型变量num1,num2
//num3,num4,分别把100,200,300,400给num1,
//num2,num3,num4赋值,最后输出每一个变量的值
  public static void main(String[] args) {
/*	int num1;
	int num2;
	int num3;
	int num4;
*/
	int num1,num2,num3,num4;
	num1 = 100;
	num2 = 200;
	num3 = 300;
	num4 = 400;
//syso+alt+/,自动生成输出语句
	System.out.println(num1);
	System.out.println(num2);
	System.out.println(num3);
	System.out.println(num4);
  }
}


  2)变量的初始化:给变量的第1次赋值,称为变量的初始化。
    定义变量的同时,直接给变量赋值(初始化)。
    eg: int num = 100;
    案例:Demo2

package com.kalos.demo;
 
public class Demo2 {
//main + alt + / + 回车:自动生成main方法
  public static void main(String[] args) {
    int num1=100,num2=200;
    System.out.println(num1);
    System.out.println(num2);
  }
}
 
//在Demo3的main方法中定义3个int类型a,b,c,分别把
//100,200,300给变量赋值,最后输出每一个变量的值 
package com.kalos.demo;
 
public class Demo3 {
  public static void main(String[] args) {
    int a=100,b=200,c=300;
    System.out.println("a="+a);
    System.out.println("b的值是"+b);
    System.out.println("c="+c);
  }
}

  


  3)System.out.println("要显示的内容"+变量名);
    System.out.println("num="+num);
    num=100
  4)变量必须要先定义,然后才可以使用
    案例:Demo4

package com.kalos.demo;

public class Demo4 {
  public static void main(String[] args) {
//	num=100;
//变量必须要先定义,然后才可以使用。
	int num1;
//	System.out.println(num1);
//变量只有赋值(初始化)以后,才可以进行算术运算或者
//输出	
  }
}


  5)变量只有进行初始化以后,才可以进行输出或者参与算术运算
  6)在同一个作用域({ })中,变量名不能重复。
    案例:Demo5

package com.kalos.demo;

public class Demo5 {
  public static void main(String[] args) {
	int num = 200;
	System.out.println(num);
//	int num;
//在同一个作用域({}),变量名不能重复    
  }
}


3 标识符:java中起名字的规范
  1)标识符可以以字母,下划线_或者美元符号$开头,后面可以跟数字,字母,下划线_或者美元符号$。
    切记:千万不要以数字开头。
    正确: int a_1,b$,_a;
    错误: int 1a,2num;
  2)标识符中只有两个特殊字符:下划线_和美元符号$
    错误: int a!,a¥,num&;
  3)标识符严格区分大小写
    int S,s; //S和s是两个不同的变量
  4)标识符中不能出现空格
    错误: int a b;
  5)不能使用关键字命名
    关键字:sun公司设计Java的时候,提前对一些单词赋予了特殊的含义,这些单词就是关键字,比如:int,public,static...
    错误:int int;


4 Java中的数据类型:基本数据类型和引用数据类型
  1)基本数据类型:4类8种
    a)整数类型:byte , short , int , long
    b)浮点(小数)类型:float,double
    c)布尔类型:boolean
    d)字符类型:char
  2)引用数据类型:sun公司或者其他开发人员为了简化开发,而单独设计的全新的数据类型。

5 整型数据类型(整数类型):byte,short,int,long
  1)byte: 取值范围-128~127之间,8位
    01111111 = 1+2+4+8+16+32+64
          = 7+24+96
          = 127
    byte取值范围太小了,测试中使用极少,但在开发中经常使用byte类型来实现上传和下载,记住byte的取值范围。
  2)short:取值范围正负3W左右,16位,short取值范围太小,企业中使用极少。
  3)int:取值范围正负21亿左右,32位,取值范围大,int是企业也中使用最为广泛整数类型。
  4)long:超过int的取值范围都使用long来保存,64位,取值范围最大整数类型,企业中使用也极其广泛。
    int a = 100;
  5)字面量:参与算术运算或者赋值运算的数字,称为字面量。
    整型字面量默认是int类型。
    a)如果给byte或者short类型的变量赋值,系统会自动把整型字面量的类型由当前默认int类型,转换为对应byte或者short类型
      eg: byte num1 = 100; //100: int--->byte
    b)如果整型字面量的取值超过了int的取值范围,必须在该字面量的末尾加上L或者l,把该字面量由当前默认的int类型,转换为long类型。
    c)字面量也可以称为常数(了解)。
      案例:Demo6

package com.kalos.demo;

public class Demo6 {
//整型类型:byte,short,int,long
//byte:-128~127 , 8位,测试中使用极少
//short:正负3W左右 ,16位,使用极少
//int: 正负21亿左右,32位,使用最为广泛
//long: 超过int的取值范围,使用long,64位,使用广泛
//字面量:参与赋值或者算术运算的数字,称为字面量,整型
//字面量默认是int类型。
//1 给byte或者short类型变量赋值,系统会自动的把
//整型字面量由当前默认的int,转换为对应short或者byte
//2 如果整型字面量的取值超过int取值范围,必须在该
//字面量的末尾加上L或者l,把当前字面量由int类型转换
//为long类型
  public static void main(String[] args) {
	byte num1 = 100;
//分析:字面量100由当前默认int类型自动的转换为对应
//byte类型,赋值给num1
	System.out.println(num1);
	short num2 = 1000; //int--->short
	System.out.println(num2);
	int num3 = 100000;
	System.out.println(num3);
	long num4 = 10000;
	System.out.println(num4);
//	long num5 = 100000000000;
//报错了,100000000000超过int的取值范围。
	long num6 = 100000000000L;
	System.out.println(num6);
  }	
}

6 浮点数据类型(小数):float,double
  1)float:单精度,32位,虽然float占了32位,但是由于存储结构不同,float取值范围远远大于64位long,由于取值范围和精度都不如double,在企业中,float没有double使用广泛。
  2)double:双精度,64位,取值范围大,精度高,企业中使用最为广泛浮点类型。
  3)浮点类型字面量默认就是double类型,如果给float类型的变量赋值,该浮点类型字面量的末尾必须加上F或者f,把该字面量由默认double类型转换为对应float类型。
    案例:Demo7

package com.kalos.demo;

public class Demo7 {
//浮点类型:float,double
//float:32位,由于存储结构不同,32位float取值范围
//远大于64位long。没有double使用广泛。
//double:64位,取值范围大,精度高,使用最为广泛的
//浮点类型。
//浮点类型的字面量默认double,如果给float类型变量
//赋值,在该浮点类型字面量的末尾加上F或者f。
  public static void main(String[] args) {
	double num1 = 100.666;
	System.out.println("num1="+num1);
	float num2 = 1.66F;//double-->float
	System.out.println("num2="+num2);
  }	
}

7 布尔类型:boolean
  boolean :用来保存一个判断的结果,要么true,要么false
    eg:boolean result = false;
      boolean result = 100>50;   //true
  案例:Demo8

package com.kalos.demo;

public class Demo8 {
//布尔类型:保存一个判断的结果,要么true,要么false
  public static void main(String[] args) {
	boolean result1 = false;
	System.out.println("result1="+result1);
    boolean result2 = true;
    System.out.println("result2="+result2);
    boolean result3 = 100>200;
//    					false
    System.out.println("result3="+result3);
  }
}

8 字符类型:char
  1)char:用来保存一个任意的字符,可以是字母,中文,日文...
    char 变量名 = '单个字符';
    不能赋空值
    eg:
      char c1 = 'a';
      char c2 = '中';
      '1' 和 1
      '1'是一个字符,显示作用
      1是数字,可以进行算术运算
      char c3 = '1';
    案例:Demo9

package com.kalos.demo;

public class Demo9 {
  public static void main(String[] args) {
	char c1 = '夏';
	System.out.println(c1);
	char c2 = '中';
	System.out.println(c2);
	char c3 = 'z';
	System.out.println(c3);
	char c4 = '6';
	System.out.println(c4);
//	char c5 = '10';
//char类型的变量,只能保存一个字符,'10'是'0'和'1'
//两个字符
//	char c6 = '';不能把空赋值给char类型变量
	char c7 = ' ';//空格也是一个字符
  }
}


  2)char类型字符可以自动转换为一个int类型数字
    eg:
      char c1 = '中';
      int num1 = c1;// '中'------>20013
    案例:Demo10

package com.kalos.demo;

public class Demo10 {
  public static void main(String[] args) {
	char c1 = '中';
	int num1 = c1;
//分析:首先c1中的'中'自动类型转换,由当前的char类型
//自动的转换为int类型('中'---->20013),最后把
//20013赋值给num1
	System.out.println(num1);
	char c2 = '华';
	int num2 = c2;
//'华'----->21326,最后把21326赋值给num2	
	System.out.println(num2);//21326
  }
}


  3)如果使用“+”连接多个char类型字符,首先在底层把char类型字符先转换为对应int类型的数字,然后执行加法运算。
    案例:Demo11

package com.kalos.demo;

public class Demo11 {
  public static void main(String[] args) {
	char c1='艾',c2=薇',c3='儿';
	int sum = c1+c2+c3;
	System.out.println(sum);
  }
}


  4)char用来处理字符较为麻烦。

9 String:字符串

  sun公司设计的一个引用类型,专门用来处理字符问题,企业中主要使用String来处理字符问题。
  1)格式:
    String 变量名 = "0个或者多个字符";
    eg:
      String str1 = "你好";
  2)使用"+"来串联多个String,返回结果也是String
    案例:Demo12

package com.kalos.demo;

public class Demo12 {
  public static void main(String[] args) {
	String str1 = "";
	System.out.println(str1);
	String str2 = "今天天气很好!";
	System.out.println(str2);
	String str3 = "生命中总有生生不息的希望,";
	String str4 = "和不期而遇的温暖!";
	String str5 = str3 + str4;
	System.out.println(str5);
  }
}


  3)使用"+"来连接String和其他类型数据,返回结果也是String
    案例:Demo13

package com.kalos.demo;

public class Demo13 {
  public static void main(String[] args) {
	String str = "今天:";
	int num1 = 100;
	String str1 = str + num1;
	System.out.println(str1);
	double num2 = 6.99;
	String str2 = str + num2;
	System.out.println(str2);
	boolean num3 = false;
	String str3 = str + num3;
	System.out.println(str3);
	
  }
}

10 自动类型转换

  数据会自动由取值范围小的类型向取值范围大的类型转换
  1) byte->short->int->long->float->double
    由于存储结构的不同,32位float的取值范围远远大于64位long
    char->int
    eg:
      int num1=100;
      double num2 = num1;
      分析:num1中100会进行自动类型转换,由当前默认的int类型自动的转换为double(100----->100.0),最后把100.0赋值给num2。
  2)自动转换不损失精度。

package com.kalos.demo;

public class Demo14 {
  public static void main(String[] args) {
	int num1 = 10;
	double num2 = num1;
//分析:首先num1中10进行自动类型转换,由当前的int
//类型自动转换为double(10-->10.0),最后把10.0
//赋值给num2
	System.out.println("num2="+num2);
	byte num3 = 110;
	double num4 = num3;
//110--->110.0(byte--->double),最后把110.0
//赋值给num4
	System.out.println("num4="+num4);
  }
}


11 强制类型转换

  根据需要把数据强制的转换为所要求的类型
  1)格式: (要转换的类型)数据
    eg:
      double num1 = 100.99;
      int num2 = (int)num1;//100
  2)由浮点类型的数据强制的转换为整数,舍弃小数点后所有的数字。
  3 ) 强制类型转换容易损失精度。
    案例:Demo15

package com.kalos.demo;

public class Demo15 {
  public static void main(String[] args) {
//强制类型转换格式:(要转换的类型)数据
//强制类型转换容易损失精度
	double num1 = 100.9999;
	int num2 = (int)num1;//100
	System.out.println("num2="+num2);
//由浮点类型的数据强制转换为整数,舍弃小数点后所有的
//数字。
	
  }
}
原文地址:https://www.cnblogs.com/KalosOwen/p/8379885.html