(1) 标识符、关键字、基本数据类型以及其包装类、运算符

标识符、关键字、基本数据类型以及其包装类、运算符




l 标识符

一、 由数字、字母、下划线、美元符组成,数字不可以开头。

二、 不可以使用关键字和保留字,但可以包含关键字和保留字。

三、不包含空格。

四、不能包含@#等特殊字符

     

Java中的名称规范:

        包名:多单词组成时所有字母都小写。

                xxxyyyzzz

        类名接口名:多单词组成时,所有单词的首字母大写。

                XxxYyyZzz

        变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。

                xxxYyyZzz

        常量名:所有字母都大写。多单词时每个单词用下划线连接。

                XXX_YYY_ZZZ

l 关键字(keyword

        

1 用于定义数据类型的关键字

基本数据类型:

        整数类型:byte  short  int  long   浮点类型:float  double

        字符类型:char                            布尔型:boolean

引用数据类型:

        class(类)  interface(接口)

void用于函数上表示无返回值类型

2、用于定义数据类型值的关键字

        true(真) false(假)  null(空)

3 用于定义流程控制的关键字

        判断:if  else  switch case  default

        循环:for  while  do 

        继续循环:continue                    结束循环或选择结构:break

        返回:return

4 用于定义访问权限修饰符的关键字

        private(私有的) protected(受保护的)  public(公有的)

5 用于定义类、函数,变量修饰符的关键字

        abstract(抽象的) final(最终的)  static(静态的)  synchronized(同步的) enum(枚举)

6、用于定义类与类之间关系的关键字

        extends(继承) implements(实现)

7 用于定义建立实例及引用实例,判断实例的关键字

        new(建立实例)  this(当前引用)  super(父类引用)  instanceof(判断对象类型)

8 用于异常处理的关键字

        try(检查异常)  catch(捕获异常)  finally(最终执行) 

        throw  throws:两多表示抛出异常,但使用位置不同

9 用于包的关键字

        package(创建包) import(导入包)

10、其他修饰关键字

        native(本地)          

        strictfp(strict float point,精确浮点)  

        transient(变量修饰符,用它声明一个实例变量,在对象序列化时不会被序列化)

        volatile(类型修饰符,用来修饰被不同线程访问和修改的变量) 

        assert(断言,可以看作是异常处理的一种高级形式,用于捕捉我们在代码中做出的假设)

注:main不是关键字,却是被虚拟机所识别的一个名称。 

l 基本数据类型以及其包装类

 

一、基本数据类型对象包装类。

        byte               Byte

        short              Short

        int                  Integer

        long               Long

        boolean          Boolean

        float               Float

        double           Double

        char               Character

 

二、基本数据类型转成字符串

        基本数据类型+" "

        基本数据类型.toString(基本数据类型值);

        如:Integer.toString(34);//将34整数变成"34"。

 

三、字符串转成基本数据类型。

         xxx a=Xxx.parseXxx(string);//必须传入对应类型的字符串。

        如   inta=Integer.parseInt("123");//静态

        booleanb=Boolean.parseBoolean("true");

        Integeri=new Integer("123");

        intnum=i.intValue();//跟上面的静态方式的结果一样,但这种属于对象调用方式。

注意:

        在使用时,Integer  x = null;上面的代码就会出现NullPointerException。

 

四、十进制转成其他进制。

         static String  toBinaryString(int i);

         toHexString(); (如上)

         toOctalString();(如上)

 

五、其他进制转成十进制。

         parseInt(String,radix);

         如:int a= Intager.parseInt("3c",16);

JDK1.5版本以后出现的新特性。

                         Integer x=new Integer(4);

         等效于:Integer x=4;//自动装箱。

        还可以直接进行运算:x=x+2;//x进行自动拆箱。变成了int类型。和2进行加法运算。再将和进行装箱赋给x。x的拆箱动作等效:x.intValue()。

 

六、示例

        Integer x=128;

        Integer y=128;

        x==y   (false)

        Integer m=127;

        Integer n=127;

        m==n ( true)

原因:

        因为m和n指向了同一个Integer对象。因为当数值在byte范围内,对于新特性,如果该数组已经存在,则不会再开辟新的空间。

七、小练习

/*
"12 0 99 -7 30 4 100 13 -6"
要求对字符串中的数值进行排序。生成一个数值从小到大新字符串。

"-7 -6 0 4 12 13 30 99 100"

思路:1、将字符串切割为字符串数组
	  2、将字符串数组转换为整数类型数组
	  3、对整数类型数组进行冒泡排序
	  4、将排序后的整数类型数组转换为字符串
*/

class  StringSort
{
	public static void main(String[] args) 
	{
		String s="12 0 99 -7 30 4 100 13 -6";
		sop(s);
		

		sop(stringSort(s));
	}

	public static String stringSort(String s)
	{
		//将字符串切割成字符串数组
		String[] str=s.split(" ");

		//将字符串数组转换为整数类型数组
		int[] arr=stringToInt(str);
		
		// 对整数类型数组进行冒泡排序
		bubbleSort(arr);

		//将排序后的整数类型数组转换为字符串
		return intToString(arr).toString();
	}

	// 将字符串数组转换为整数类型数组方法
	private static int[] stringToInt(String[] str)
	{
		int[] arr=new int[str.length];
		for(int x=0;x<str.length;x++)
		{	
			arr[x]=Integer.parseInt(str[x]);
//			sop(arr[x]);
		
		}
	//	sop(arr);
		return arr;
	}
	
	//对数组进行冒泡排序
	private static void bubbleSort(int[] arr)
	{
		for (int x=0;x<arr.length ;x++ )
		{
			for (int y=0;y<arr.length-x-1; y++)
			{
				if(arr[y]>arr[y+1])
					swap(arr,y,y+1);
			}
		}
	//	sop(arr);
	}

	//交换数组中的两元素
	private static void swap(int[] arr,int x,int y)
	{
		arr[x]=arr[x]^arr[y];
		arr[y]=arr[x]^arr[y];
		arr[x]=arr[x]^arr[y];
//		int temp=arr[x];
//		arr[x]=arr[y];
//		arr[y]=temp;
	}
	
	//将整数类型数组存放到一个StringBuiler容器中
	private static StringBuilder intToString(int[] arr)
	{
		StringBuilder sb=new StringBuilder();
		for (int x=0;x<arr.length-1; x++)
		{	
			sb.append(arr[x]+" ");
		}
		sb.append(arr[arr.length-1]+"");

		return sb;
	}

	//打印字符串
	private static void sop(Object obj)
	{
		System.out.println(obj);
	}

	//遍历数组
	private static void sop(int[] arr)
	{
		for (int x=0; x<arr.length;x++ )
		{
			System.out.print(arr[x]+"\t");
		}
		System.out.println();
	}
}



结果:


       

 

l 运算符

1、算术运算符

 

注:进行取模运算时,如果有负数,运算结果取决于运算左边有没有负数。

        字符串数据和任何数据使用 +都是相连接,最终都会变成字符串。

2、赋值运算符

        符号:=  +=  -= *=  /=  %=

例:    int a,b,c; a=b=c =3;

           int a = 3;   a+=5;//等同运算a=a+5;

3、比较运算符

 

注:1、比较运算符的结果都是boolean型,也就是要么是true,要么是false2、比较运算符“==”不能误写成“=”

4、逻辑运算符

逻辑运算符用于连接boolean类型的表达式。

 

        &:只要两边的boolean表达式结果,有一个为false,那么结果就是false。只有两边都为true,结果为true

        |:两边只要有一个为true,结果为true;只有两边都为false,结果为false

        ^:两边相同结果是false,两边不同结果是true

&&&的区别:

        &时,左边无论真假,右边都进行运算;

        &时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|”“||”的区别同理,双或时,左边为真,右边不参与运算。

5、位运算符

        左移:<<;空位补0,被移除的高位丢弃,空缺位补0。

       右移:>>;被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。

       无符号右移:>>>;被移位二进制最高位无论是0或者是1,空缺位都用0补。

        与: &;二进制位进行&运算,只有1&1时结果是1,否则是0。

       或:|;二进制位进行 |运算,只有0 | 0时结果是0,否则是1。

       异或: ^;任何相同二进制位进行 ^运算,结果是0;1^1=0 , 0^0=0。

不相同二进制位 ^运算结果是1。1^0=1 , 0^1=1。

        反码:~;对二进制进行取反。

6  三元运算符

    格式:

                (条件表达式)?表达式1:表达式2;

        a)如果条件为true,运算后的结果是表达式1;

        b)如果条件为false,运算后的结果是表达式2;

示例:

        获取两个数中大数。

               int x=3,y=4,z;

                z = (x>y)?x:y;//z变量存储的就是两个数的大数。

运算符的优先级:

 

 




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值