`

JAVA基础 之 语法基础

    博客分类:
  • java
阅读更多

概述:

    Java语法基础知识:数据类型、变量、标识符、关键字、运算符、注释

    1.数据类型:

       1.java是强类型语言,所有变量都必须声明其确定的类型

       2.基本数据类型和引用数据类型 见图


       
 

       3.类型转换:

          1.自动转换(由小转大)

          2.强制类型转换(可能会造成数据精度的丢失甚至是异常)

    2.变量

       1.存储数据的基本单元,用来存储程序执行过程中需要的或生成的数据

       2.作用范围(生命周期):局部变量和成员变量 (涉及到java面向对象知识)

    3.标识符:

       1.对各种变量、方法、类等命名的字符串序列(符号)

       2.规则

          a.组成:字母、数字、_(下划线)、$(美元符号),不能有特殊符号(空格、@、#)和关键字(在java中有特殊意义的字符串序列)

          b.必须以字母、_(下划线)、$(美元符号)开头

          c.大小写敏感

    4.关键字:在java中有特殊意义的,注意都是小写    见图

 
    
 

    5.运算符

       1.见图


       
 

       2.几个需要注意的运算符:++、--、&&、||、三元运算符、扩展运算符的含义,这些都见例子

       3.优先级顺序

    6.注释

       1.单行注释、多行注释

       2.注释的好处:

          1.记录开发思路,方便自己回忆、他人理解

          2.ide下开发,对方法注释,会让其他调用者清楚的看到方法及每个参数的含义

          3.javadoc:将注释提炼成系统文档(甚至可以省去编写开发文档的大部分工作)

package com.cxy.base;

import java.util.List;

/**
 * @author cxy
 */
public class Base1Test
{
	public static void main(String[] args)
	{
		//unicode字符集97号编码是小写字母a
		char u1=97;
		System.out.println(u1);
		
		//a字符和b字符在unicode字符集编码相差1
		char u2='a';
		char u3='b';
		System.out.println(u3-u2);
		
		//想知道你的名字在unicode字符集的位置么?
		char name1='程';
		char name2='序';
		char name3='员';
		System.out.println("程的unicode,10进制编码为:"+(name1-name2+name2));
		System.out.println("序的unicode,10进制编码为:"+(name2-name1+name1));
		System.out.println("员的unicode,10进制编码为:"+(name3-name1+name1));
		
		// 类型转换
		// 自动类型转换 和 强制类型转换
		int aaa = 100;
		long bbb = 100L;
		long ccc = aaa + bbb;		//aaa 自动转成long型做运算
		int ddd = aaa +(int)bbb;	//强制转换成int型	可能会造成精度的缺失
		//这里其实我们可以写一个工具类,用来探测变量的真实类型,但是由于涉及到面向对象的知识,所以请期待后期文章
		//System.out.println(TypeTools.getType(aaa + bbb));
		//System.out.println(TypeTools.getType((int)bbb));
		
		/* int和integer区别
		 * 1.int是基本的数据类型
		 * 2.Integer是int的封装类 属于引用类型,提供了int数据的相关操作
		 * 3.当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装 object的
		 * 这里涉及到:集合、封装类等知识,请关注我博客的相关文章
		 */
		int eee=1;
		Integer fff=new Integer(1);
		
		/* 自增运算符 (注意这只是做个演示,真实工作的时候千万不要写这么“高深”的代码)
		 * 两种自增的含义:
		 * a=b++; b先做自加操作,然后将b的原始值赋给a
		 * a=++b; b先做自加操作,然后将b的自加后的值赋给a
		 * 这里注意 执行的顺序都是b先做自加!因为++的优先级比=(复制运算符)高很多~
		 * 看了很多书,只有一本叫做《java核心技术》的书阐述的是这样的执行过程
		 * 如果下面的例子 你能分析成功 那么你++运算符的使用算是过关了
		*/
		int zzz=100;
		System.out.println("zzz=100,经过如下运算后");
		System.out.println("zzz++ + ++zzz 结果是:" + (zzz++ + ++zzz));
		System.out.println("++zzz + zzz++ 结果是:" + (++zzz + zzz++));
		System.out.println("zzz最终结果是:" + zzz);
		
		/* &&(短路与)、||(短路或)
		 * 什么叫做短路与?
		 * a && b:当a为假的时候无论b是真是假,这个表达式都为假,所以这种情况java根本不会去理会b到底是个什么样的结果
		 * 这样做 能够提高程序执行效率
		 * || 道理相同,当第一个表达式是真的话,第二个表达式无所谓真假
		 * 
		 * 下面的例子涉及到集合和异常的知识,请参见本博客的相关文章
		 */		
		List l=null;
		if(l!=null && l.size()>1)
		{
			//你的操作
		}
		/*说明:了解异常知识的人知道,l的值是null,当调用l的方法时,会报null异常
		 *但是我们发现这里根本没有报异常,因为l==null为false后java并不去关心(执行)后面的表达式(因为这根本没有意义)
		*/
		
		//三元操作符演示
		int i=100;
		System.out.println(i==100?"满分":"非满分");
		//解释:i是不是等于100?是的话表达式的值就是"满分",否则的话就是"非满分"
		//等价于下面(下面涉及到java控制流相关知识,请参见本博客的相关文章)
		if(i==100)
		{
			System.out.println("满分");
		}else
		{
			System.out.println("非满分");
		}
	}
}

 

声明:

1.原创文章,转载请标明并加本文连接。

2.文章反映个人愚见,如有异议欢迎讨论指正

  • 大小: 24.6 KB
  • 大小: 37.3 KB
  • 大小: 37.3 KB
2
2
分享到:
评论
5 楼 chenchuangfeng 2013-03-04  
不错  可以作为培训资料
4 楼 snkcxy 2013-02-27  
hareamao 写道
关键词有50个,你少了一个assert

3 楼 hareamao 2013-02-27  
关键词有50个,你少了一个assert
2 楼 snkcxy 2013-02-26  
BuN_Ny 写道
感觉像培训的笔记。。。。。。。

你别说我当初做培训的时候 还真用过这里面的材料,就当笔记看吧 给大伙提个思路,抛砖引玉吧~
但是本人保证 都是原创文章~ 代码和说明都是自己一行一行写的。
1 楼 BuN_Ny 2013-02-26  
感觉像培训的笔记。。。。。。。

相关推荐

Global site tag (gtag.js) - Google Analytics