java---03Java语言的基础构成(原创,请勿转载)

1.关键字

  •  关键字在Java中被赋予了特殊的含义,比如public  void  class  等等,Java语言中的关键字全部都是小写的。但这句话可不能搞反了。

2.标识符

  •  标识符其实就是在程序中自定义的一些名称。
  •  标识符由英文字母,数字以及符号"_"和"$"构成,不能使用空格。要注意:
    • 数字不能用作标识符的开头
    • 不能使用关键字来定义标识符
    • 凡是变量的名称,都是标识符。如main,haha等

3.注释

  • Java中的注释有单行注释也有多行注释。

    • 单行注释:   由双斜杠"//"开始,作用于本行
    • 多行注释: 由  /* 开始,以    */  结束  
  •  Java特有的文档型注释可以通过Java中的工具javadoc提取,生成说明书。 
  • 注意:
    • 多行注释当中不能再嵌套一个多行注释,因为在编译的时候会多余出一个  " */ "
    • 可以利用多行注释来寻找代码出错的范围,并最终确定该错误位置。即注释可以进行程序的调试
    • 注释在编译的过程中不会被编译到CLASS文件中去,这一点可以通过比较编译前后class文件的大小看出
    • 一个规范的Java文件在进行代码编写class之前,都要进行多行注释,用来说明这个Java文件中代码的意义和思路。具体格式如下
/*
需求:(即代码所要解决的问题是什么——干什么)
思路:(编写代码的核心,找出问题的着手点——怎么干)
步骤:(主要的编程步骤,包括需要用到的变量和方法等)
*/

class Demo{    ......} 

4.常量——不能改变的数据

  •  分类:整数常量、小数常量、布尔型常量、字符常量、字符串常量、null常量
  • 注意
    • ""和‘‘不等于null,这种字符串或字符称为空字符(串)。null不能有单引号/双引号

5.变量

  • 内存中的一个存储区域,并且该区域有自己的名称(变量名)和类型(数据类型),该区域的数据可以再同一个类型范围内不断变化。
  • 变量定义之后就不能再定义一个相同数据类型和名称的变量。
  • 格式    
    • 数据类型   变量名 = 初始化值;
  • 注意注意!!!
    • 在Java中,整数在赋值给变量时默认的是int类型,如果该整数的范围大于了int类型的范围,就需要在整数的后面加上小写字母" l "进行声明,即对过大的数要用字符" l "标识。
    • 同理,由于小数在Java默认的是双精度的类型,如果想把小数保存成单精度的float类型,需要在该小数的后面加上字母" f ",声明该数字为单精度的浮点型数据。

6.数据类型(基本数据类型和引用数据类型)

  • 基本数据类型:
    • 数值型:

1.整数类型:byte(1字节,-127~128)、short(2字节)、int(4字节默认)、long(8字节,过大的整数要表示字符 l  )

ps:   1).为了方便运算,对整数进行不同程度的划分,对内存的空间能够进行有效的配置。

2).1个字节占用8个bit位  如   0000-0000

如int类型的6在内存中的表示:
                               0000-0000 0000-0000 0000-0000 0000-0110
-6的表示(正数6先去反,再加1)
                         取反  1111-1111 1111-1111 1111-1111 1111-1001
                            + 0000-0000 0000-0000 0000-0000 0000-0001
_____________________________________________________________________
                              1111-1111 1111-1111 1111-1111 1111-1010     (注意:负数的二进制最高位是1)                  

      2.浮点类型:单精度float(4字节共32个bit位表示,后面也要声明  f )、默认为双精度double(8字节)

    • 字符型:char(取值范围在2个字节之内,引号中能装下的整数只能是个数)
    • 布尔型:boolean
  • 引用数据类型:        

    • 类:class
    • 借口:interface
    • 数组: []

  


7.类型提升&强制转换

  • 上面介绍到了不同种的数据类型以及他们在计算机内存中的二进制表示方式和所占内存大小。当等式赋值运算的两端数据类型不一致的时候,就会发生自动类型提升和强制类型转换。
  • 下面通过举例来分别说明两者:

1).首先,从一个简单的运算入手,

  

class VarDemo2
{
     public static void main(String[] args)
     {
          int x = 3;
          x = x + 5;    //把内存空间中的3取出来,在运算区二进制运算3+5  即 011+101 = 1000 ,然后将运算结果赋予给x,此时x内存空间中的数据为8
          System.out.printn(x);
     }
}

上述代码在内存中的具体运算过程是这样的 

 

PS:运算两端必须是相同类型才能运算(类型不一致,内存空间就不一致)。但是数值类型之间的数可以运算。

2).自动类型提升

class VarDemo2
{
     public static void main(String[] args)
     {
          int x = 3;
          byte b = 5;
          x = x + b;   //自动类型提升
          System.out.printn(x);
     }

}/*int 类型的整数在内存中占用了4个字节,也就是32个bit位,而byte类型的整数在内存中只占用1个字节,即8个bit位。在 x = x+ b 运算时,类型为byte的数据 b 会在内存中自动补齐高位的剩下24个bit位,也就是3个字节,然后在进行运算。 */

  

3).强制类型转换

class VarDemo2
{
     public static void main(String[] args)
     {
          byte b = 5;
          b = (byte)(b + 3);  //强制类型转换:将一个int型强制转换成byte型(除去高位的二进制数据,只留下8个bit位参与运算),再复制给byte型变量
          System.out.println(b);
     }
}/*思路和上面自动类型提升一样,只不过这里是讲等式右边内存较大的int类型的 3 强制去除了其二进制中的高位(前3位字节),然后再进行运算。*/


7.常量与变量

class VarDemo2
{
     public static void main(String[] args)
     {
          System.out.println(‘a’ + 1);   //char在内存中是2位,int在内存中是4位,在没有强制转换的情况下,java会自动的把位数较小的自动转换成位数大的类型 ,然后再进行运算, 1 对应的二进制进行了自动类型转换
          System.out.print((char)(‘a‘ + 1));  //再指定了输出类型后,对结果  98 进行了强制类型转换  成位数更小的char类型
     }

}
// 运行得到  >>> 98
            >>> b

PS:二进制与生活中的文字如字母之间对应关系---->编码表

  01100001---> a

  01100002---> b

  ......    --->  ...

class VarDemo
{
     public static void main(String[] args)
     {
     byte b = 4;
     byte b1 = 3;
     byte b2 = 7;
     b = b1 + b2;   //此处会报错,原因是以为等式右边为变量,变量是不确定的,java编译器无法检查等号右边的值得范围是否超出byte(-128~127),如定义b1之后,又将127赋予b1,会丢失精度。即右边不确定,是无法判断赋值的
     //b = 3 + 7;  //3  7  为常量,不会报错
     }
}

  

class VarDemo
{
     public static void main(String[] args)
     {
     int x;
     int x1 = 898;
     int x2 = 810;
     x = b1 + b2; //因为计算结果在java中默认为int,但是当x1  + x2的值超出了int范围的时候,java就会进行强制转换,强制保存int的二进制4个8位,导致截掉了最高位的1 ,得到的会是一个负数
     }
}

  

  

时间: 2024-10-12 21:19:53

java---03Java语言的基础构成(原创,请勿转载)的相关文章

非微信图文网页,微信浏览器点击图片弹出自带图片浏览 (原创请勿转载)

微信图文网页点击插入的图片,会在微信的图片浏览器上浏览图片可以放大缩小,但是自己做的网页没有这个功能,下面我就来介绍一下这个功能,做出一个完美一点的demo.如果不想看过程直接到最后看demo... 教程需要:脚本编辑器(记事本或者是notepad++.DW都可以).jquery.js.微信浏览器作为测试 如下图效果 我们用到的是微信内置JsAPI的一个,这个函数在微信的开发者平台文档里我没有找到,是在网上搜到的. WeixinJSBridge.invoke('imagePreview',{  

JAVA多线程和并发基础面试问答(转载)

原文链接:http://www.cnblogs.com/dolphin0520/p/3932934.html 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题. Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含

2.2JAVA基础复习——JAVA语言的基础组成运算符和语句

JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号. 6.语句:程序中常用的一些语句. 7.函数:也叫做方法,用来做一些特定的动作. 8.数组:用来存储多个数据的集合. JAVA中的运算符 1.算术运算符:用来进行一些数据算法的符号 算术运算符分为单目运算符.双目运算符.三目运算符. 单目运算符有:+(取正)-(取负)++(自增)--(自减)代码如

Java语言的基础知识

第三章 1.在java源文件编辑器中,选择某个成员变量,然后按住shift+alt+j,Eclipse会自动添加JavaDoc文档注释结构,如果选择的是方法,还会自动添加参数名称. 2.Java语言规定标示符是由任意的字母.下划线.美元符号和数字组成,并且第一个字符不能使数字,标示符不能使java中的保留关键字. 3.在Java语言中允许使用汉字或其他语言文字作为变量名,如int 年龄 =21;在程序运行时不会报错,但建议尽量不要使用这些语言作为变量. 4.java用关键字final来声明常量,

Java语言的基础知识4

第五章(数组) 1.在Java中可以将数组看做是一个对象虽然基本数据类型不是对象但有基本数据类型组成的数组是对象. 2.对于二维数组求第二维就用array[0].length, array.length就是默认的是第一维的长度. 3.foreach并不是一个新的语法它是for的循环的格式化主要执行遍历功能的循环,example: int arry ={1,2,3,4,5}; for(int i :array){ system.out.println(): } 4.数组元素定义完以后可通过Arra

2.1JAVA基础复习——JAVA语言的基础组成注释和常量变量

/** 这是 JAVA中独有的多行注释 */ JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号. 6.语句:程序中常用的一些语句. 7.函数:也叫做方法,用来做一些特定的动作. 8.数组:用来存储多个数据的集合. JAVA中的注释: 注释还可以用来缩小程序错误的范围,方便查找错误. // :表示单行注释. //这是一个单行注释 /**/:表示多行

Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识

JSP 是 Sun 公司提倡的一门网页技术标准.在 HTML 文件中,加入 Java 代码就构成了 JSP 网页,当 Web 服务器访问 JSP 请求的时候,首先执行其中的 Java 程序源码,然后以 HTML 形式返回, Java 程序运行在服务端,最终显示在客户端.JSP 源于 Java,因而 JSP 的运行环境依赖JDK,当然也需要服务器软件(例如 Tomcat 等). 一.运行环境搭建 1.安装 JDK,请参阅之前的博文:Java学习-001-JDK安装配置 2.Tomcat部署及环境变

Java语言的基础知识12

第十四章(使用集合类保存对象) 1.java中得集合对象就像是一个容器,它用来存放Java类的对象.Java中的集合类有些方便存入和取出,有些则方便查找.集合类和数组的区别是,数组的长度是固定的,集合的长度是可变的,数组用来存放基本类型,集合用来存放对象的引用.常用的集合类有List集合,Set集合,和Map集合. 2.List集合包括List接口以及List接口的所有实现类.List集合中的元素许重复,个元素的顺序就是对象插入的顺序.类似java中的数组.List类继承了Collection接

Java语言的基础知识10

第十二章(GUI事件) 1.GUI事件的处理机制是建立交互式应用程序的关键技术,其中事件是用在程序界面上的各种操作. 2.写程序的时候对于swing的一些空间譬如jprogressbar ,jtextfield等空间在全局中声明以后,用的时候一定要new 一下,自己经常忘记(由于对java理解不深) private  JTextField textField2; textField2 = new JTextField(); 3.事件在java语言中也是一种对象 4.监听器接受到事件之后,将委托指

Java语言的基础知识9

第十一章(线程) 1.通过String name=Thread.currentThread().getName();来获取当前线程的名称. 2.多次启动一个线程或者启动一个已经运行的线程是非法的,会抛出IllegalThreadStateException异常对象. Thread.sleep((int)Math.random()*10000); 3.java提供了Runnable接口使继承了其他类之后同样可以实现该接口达到创建线程的目的Runabble接口同样定义了Run方法. 实现Runnab