Java基础语法总结

转至:http://sllereak.blog.163.com/blog

 

 --JDK--也叫J2SDK--Java2-Software-Development_kit--开发工具(并且JDK本事就包含了JRE)

--JRE-----JAVA_Runtime_Environment--运行时环境
--如果只是运行JAVA程序而不作为开发则只需要JRE就可以了

--j2se--java2_standard_edition
--j2me--java2_mobile_edition
--j2ee--java2_enterprise_edition

jdk_1.5更名为java 5.0  也就是在这个版本中引入 <script src="http://hi.images.csdn.net/js/blog/tiny_mce/themes/advanced/langs/zh.js" type="text/javascript"></script> <script src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" type="text/javascript"></script> 泛型的概念

java的运行机制(大致)
 *将.java编译成.class字节码文件--(loader--解释字节码文件)---操作系统API
 *实现了一次编译多次运行,跨平台运行
 
GC
 *当JVM空闲时候调用垃圾收集器
 eclipse的中断效应就是垃圾收集过程
 
--java中的main()方法是完全固定的:public static void main(String[] xxx)
 当然也可以public static void main(String xxx[])这是数组的问题了

--一个.java文件只能有一个public class 并且类名必须和.java的文件名一致


--java中的标识符只能有字母,数字,下划线,$四种字符组成,并且不能用数字开头,长度不限制!随便写
--goto const虽然java没有用这两个作为关键字,但它也作为关键字保留
--常量这个词注意有两个含义其一:123为整形常量,“HELLO”为字符串常量,其二:值不可变的变量也叫常量
--double i , j = 0.01  其中i为0.0(前期条件是成员变量,局部变量是必须给初始值的)
--0.01默认是double类型的,所以float a=0.01;是错误的,应该是float a=0.01f;
--程序运行时将内存分为四个区
 *code segment--代码区,存放.class代码
 *data  segment--数据区,存放静态变量,字符串常量,这里说的字符串常量,注意123不存放在data segment中,
 *stack--栈 , 存放局部变量
 *heap--堆,存放new出来的东西
--java使用unicode编码,所以一个字符占两个字节(一个字节(byte)8个比特bit),所以可以char a='中' ,也可以char = '/n' 还可以char='/u0061'
 *其中'/u0061'是/u什么呢?表示16进制的unicode编码,0061是一个字符,所以有16个bit刚好能这样表示
 如果char只是用一个字节完全不能存所有的中文,但是两个字节就够了
 每一个字符都占用两个字节(unicode又分为UTF-8和UTF-16,JAVA使用的是UTF-16)
--java里面没有无符号的整数
 所以byte的范围是-128-127
 java的数据长度不受到操作系统的影响,这样能保证可移植性,不像C#和操作系统有关
--java里面数值常量的三种表示方式
 *10进制--20
 *8进制--012
 *16进制--0x12或者0X12
--
  int i=11111111111111111111111;//默认为int但是超出范围,编译错误
  long i=1111111111111111111;//默认为int也超出范围,编译错误
  long i=11111111111111L;//不再是int.而是Long,没有超出范围,正确
--float小数7位之内是精确的
  double小数15位之内是精确的

--有一个误区
  {
   int i;
   i=10;是可以的,只需要记住局部变量是在使用前必须给值的就行了,并不是在申明的时候就必须给初始值哈
   但是只是申明了,但是没有使用会怎么样呢?也没有问题,只不过会有一个警告而已
   结论:只是不允许使用未给值的局部变量,
  }
 --
  char型可以当成short对待(比如short可以隐式转成int那么char也行,但是int不能隐式转为char)
  在混合运算的时候最小的单位是int,也就是说容量小于int的都会首先转换成int再做下一步的运算
  
  注意这样的问题short i=10或者short i=10*20;是没有问题的,不存在int-->short的转换溢出问题
  但是int i=10;   short j=i,或者short j=10*short i(i或自动转换成int);就不行了,这点大概是语法上的问题,不做深究,也就是说不一定10就是默认的int类型的(只要不超出short的范围就行了,比较特殊,其他情况都符合标准)
  long---int的强制转换可能会产生溢出,会截取,返回一个截取后的数值
  但是double---float的强转由于有小数,所以计算机无法截取,会返回无穷大(注意啊,很特殊,但是也很好理解),但是没有溢出的情况下是完全可以的
  float---int的强制转换回截取掉所有小数,返回整数部分
 --java中的switch只能探测到int类型(所以能隐式到int的都能装到switch()中,比如char,byte,short都能装进去,给long是不行的),但是case后面必须是一个整形常量,并且不能超出int的范围
  case会穿透到default语句,所以尽量写上break语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值