java入门(二)

(一):JAVA的HelloWorld案例

首先我们先解释一下 注释的作用.

注释:帮助我们理解本行代码或者一整部分代码的文字. 在查虫和给不懂代码的人看的时候.有了注释就能人其他人能大概了解你这行代码的意义所在.

         所以在我们学习java,敲击代码之前一定要认识到注释的作用是非常巨大的.不要因为自己懒而不去写注释这是不对的


注释的书写格式:  ① //  单行注释 

          ②/*     多行注释      */

                               ③    /** 文档注释 */ 


好现在我们来书写HelloWorld案例:

  //首先定义一个类                               ------------------------------------------ 关于类名 和其他的书写格式在下一章会具体讲.

                      class  HelloWrold(类名){

       //在大括号中间添加一个主(main)方法/函数
                                  public   static void main(String [] args){ 
//在主方法的大括号中间添加一行输出语句
System.out.println("helloworld!");
}
                                         }               

下面说说HelloWorld案例的常见错误:

1.文件扩展名隐藏导致编译失败 
2.class写错  Class claas…(java语言严格区分大小写)
3.类名格式有问题  暂时全部使用英文
4.类名后面的大括号匹配不正确
5.main方法格式错误 

  public static voidmain(String [] args){ }

6.main方法大括号缺失
7.打印语句拼写错误

  System.out.println(“”); 

引号使用错误,使用成中文全角引号


结合上一章我们学习的jvm与jre 的内容,我们来熟悉一下其中的工作原理. 如下图:


java格式的源代码经过javac编译生成java字节码文件HelloWorld.class文件.在通过java执行. 得到运行结果:



(关于path环境变量的配置百度一下你就知道都讲的很全.图文并茂在这里我们就不一一细说了.)



(二): JAVA语法基础

基础语法内容:

•关键字
•标识符
•常量、进制和进制转换
•变量
•数据类型和类型转换
•运算符
语句


①我们先讲讲关键字.

什么是关键字?  

        关键字就是被java语音赋予了特定涵义的单词

关键字的特点

        关键字的字母全都要小写

注意事项?

–goto和const作为保留字存在,目前并不使用
–类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

java基本关键字 下图:

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

class

interface

byte

short

int

long

float

double

char

boolean

void

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

true

false

null

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

if

else

switch

case

default

while

do

for

break

continue

return

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

private

protected

public

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

abstract

final

static

synchronized

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

extends

implements

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

new

this

super

instanceof

用于异常处理的关键字

try

catch

finally

throw

throws

用于包的关键字

package

import

其他修饰符关键字

native

strictfp

transient

volatile

assert



②标识符

       标识符的组成规则:
-英文大小写字母
        -数字字符
        -$和_
命名规则(要求见名知意)
       包(其实就是文件夹,用于解决相同类名的问题)
    类或者接口
    方法和变量
    常量
常见命名如:
                           包:liuvi.cn.it.cast      全小写
      类或者接口:Student,HelloWorld    单个单词的首字母大写
           方法和变量:name ,main ,studentname   全小写
   常量:MAX.STUDENT_MAX_AGE  常量全大写

③常量:
•字符串常量  用双引号括起来的内容
•整数常量  所有整数
–12,23
•小数常量  所有小数
–12.34,56.78
•字符常量  用单引号括起来的内容
–‘a’,’A’,’0’
•布尔常量  较为特有,只有true和false
•空常量  null(数组部分讲解)

常量不同进制的数据组成:
二进制:
有 0,1 组成.以0b开头;
八进制
有0,1,2.....7组成. 以0开头
十进制
由0,1,2...9组成.整数默认为是十进制.
十六进制
由0,1,2....9.A.B.C.D.E.F(大小写均可)以0x开头

*****十进制和二进制的快速转换*****
–8421码
什么是8421码?
举个例子.
在二进制0b 11111111  中,从右往左开始每个1分别代表 十进制中的1 2 4 8 16 32 64 128.
所以如果将0b10001001 转换为十进制的话 就可以

1+8+128=137. 

将100转换为二进制则用二除法.直到商为0,余数反转.
所以 100=0b01100110

*****十进制到其他进制*****
•通过十进制推出结论
•把52分别表示成二进制,八进制,十六进制
道理跟十进制转化为二进制是一样的. 
将52除以基数 (2 8 16)直到商为0 余数反转

52=0b00110100=064=0x34

•二进制和八进制,十六进制如何转换
–以十进制作为桥梁
–二进制到八进制  3位组合
•100110   从左到右开始组合,右边缺失值则补零
–二进制到十六进制  4位组合
•100110    从左到右开始组合,右边缺失值则补零

*****有符号位的数据表示法*****


–在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。
–原码
•就是二进制定点表示法,即最高  位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
–反码
•正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
–补码
•正数的补码与其原码相同;负数的补码是在其反码的末位加1。


④变量
概述: 在程序执行过程中.在某个范围内其值可以发生改变的量
                (可以理解为数学中的未知数)
变量的定义格式:
 数据类型  变量名= 初始化值;
注意:格式是固定的.
/**从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用**/

⑤数据类型

首先我们知道 数据类型在java中分为两类;

第一类: 基本数据类型
第二类: 引用数据类型

基本的分类情况如下图.






我们复习下我们讲过的基本数据类型.  如下图 



上图表示的基本数据类型每个所占的字节数. 我们知道Java中各整数类型有固定的表述范围和字段长度.他不会受到具体操作系统的影响.,保证了Java 的可移植性.

******注意事项******

Java语言中整型常量默认为int 型, 我们声明long型常量的时候可以在后加 ' l '或者'L'

比如;int a= 100;   long b= 100L //不加L则为错.

同样的我们将浮点型常数分为两种表示形式

 十进制表示 如: 3.1415    3123.0

 科学计数法 如: 3.14e2     3.14*10^2

Java浮点常量默认为double型. 如果你要声明一个float型的浮点常量 则需要在后方加上F或者f 

如: double c= 3.14 ;         float d= 3.14F//不加F 则为错

char 型数据用来表示通常意义上的“字符”

字符常量为用单引号括起来的单个字符,例如:char ch1= 'a';char ch2='中';

Java 字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示。注:Unicode是全球语言统一编码

boolean 类型适于逻辑运算,一般用于程序流程控制。

boolean 类型数据只允许取值 true 或 false ,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。


还有一个需要注意的地方

当我们使用变量的时候.我们首先要明确以下几点.

–作用域 


•变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。

–初始化值

•没有初始化值不能直接使用

–在一行上建议只定义一个变量

•可以定义多个,但是不建议.

下面我们介绍一个Java面试题:(从中我们可以学到隐藏类型转换.)

1.0
–byteb1=3,b2=4,b;
–b=b1+b2;
–b=3+4;
问: 以上代码哪句代码是编译失败的呢?? 为什么?

1.1 
–byteb = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?

首先我们看第一题.
我们知道 java中整型常量默认为int  在byte short char 类型的数据参与运算的时候他们隐藏这数据类型的转换.他们会默认的转换为int类型
所以第一题中b是byte 类型. b1+b2 参加了运算结果就是int 类型.所以我们看得出来把int 类型的值赋给byte 型是不对的. 所有第二句的代码是错的

第二题中 我们知道byte类型的取值范围是 -128~127 那么我们赋值给一个byte型的b为130 超出了byte的取值范围当然是有问题的.
如果强行是要给一个byte 类型赋一个130 那么就可以使用强制类型转换. 如: byte b= (byte)(130) 但是这样子我们会丢失掉精度.
因为byte 为单字节.二




你可能感兴趣的:(JAVA)