java基础

第一个JAVA程序的总结和提升... 1

JAVA注释... 2

标识符Identifier:... 2

关键字/保留字: 3

JAVA基本数据类型... 4

整型变量... 4

浮点型... 5

字符型... 6

boolean类型... 6

JAVA变量... 7

Final 常量... 8

命名规则... 8

运算符... 8

二元运算符... 9

一元运算符... 9

布尔逻辑表达符... 9

位运算符... 10

扩展运算符... 10

字符串连接符... 10

三目条件运算符... 10

运算符优先级的问题... 11

自动类型转换... 11

基本类型转化时常见错误和问题... 12

方法... 13

内存分析-变量... 14

垃圾回收机制... 14

字符串... 14

读取键盘录入数据... 17

格式化输出... 17

第一个JAVA程序的总结和提升

Java对大小写敏感,如果出现了大小写拼写错误,程序无法运行。

n  关键字public被称作访问修饰符(accessmodifier),用于控制程序的其它部分对这段代码的访问级别。

n  关键字class 表明Java 程序中的全部内容都包含在类中,Java是一种纯面向对象的语言。

n  一个源文件中至多只能有一个public的类声明,其它类的个数不限,如果源文件中包含一个public 类,源文件名必须和它中定义的public的类名相同,且以“java”为扩展名。

n  一个源文件可以有多个class

n  正确编译后的源文件,会得到相应的字节码文件,编译器为每个类生成独立的字节码文件,且将字节码文件自动命名为类的名字且以“class”为扩展名。

n  main方法是Java应用程序的入口方法,它有固定的书写格式:

n  public static void main(String[]  args[雨林木风1] ) {…}

n  在Java中,用花括号划分程序的各个部分,任何方法的代码都必须以“{”开始,以“}”结束, 由于编译器忽略空格,所以花括号风格不受限制

Java中每个语句必须以分号结束,回车不是语句的结束标志,所以一个语句可以跨多行。

 

编程风格:

1.      注意缩进!

2.      成对编程!

JAVA注释

n  注释就是程序员为读者作的说明,是提高程序可读性的一种手段

n  在Java中,有2种表示注释的方法

q   // 单行注释----注释内容从//到本行结尾

q /*

               单行或多行注释

        */

           

/* */注释不能嵌套

Java中的注释不会出现在字节码文件中。即JAVA编译器编译时会跳过注释语句。

 

Doc 注释??? 

标识符Identifier(见名知意!!!)

用作给变量、类和方法命名。注意:

表示类名的标识符用大写字母开始。如:Man,GoodMan

表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始。eat(),eatFood[雨林木风2] ()

Java标识符有如下命名规则:

n  标识符必须以字母、下划线_ 、美元符$开头。

n  标识符其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合。

n  Java 标识符大小写敏感,且长度无限制。

n 不可以是Java的关键字。

JAVA不采用通常语言使用的ASCII字符集,而是采用unicode这样的标准的国际字符集。因此,这里的字母的含义:英文、汉字等等。(不建议大家使用汉字来定义标识符!)

各种字符集的关系?

合法的标识符:

       int a = 3;

       int _123 = 3;

       int $12aa = 3;

       int 变量1 = 55;

不合法的标识符:

       int 1a= 3;   //不能用数字开头

       int a# = 3;   //不能包含#这样的特殊字符

                   int int = 3;  //不能使用关键字

 

关键字/保留字

Java关键字Java语言保留供内部使用的,如class用于定义类。 关键字也可以称为保留字,它们的意思是一样的。

abstract

assert

boolean

break

byte

case

catch

char(character)

class

const

continue

default

do

double

else

extends

final

finally

float

for

goto

if

implements

import

instanceof

int

interface

long

native

new

null

package

private

protected

public

return

short

static

strictfp

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while





 

不能使用关键字作为变量名或方法名。

 

 

JAVA基本数据类型

Java是一种强类型语言,每个变量都必须声明其类型。

Java的数据类型分为两大类:基本类型(primitive type)和引用类型(referencetype)

Java中定义了3类8种基本数据类型

逻辑型-boolean

文本型- char

数值型- byte,  short,  int, long, float,  double

整型变量

整型用于表示没有小数部分的数值,它允许是负数。

整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。于此相反,C和C++程序需要针对不同的处理器选择最有效的整形。

类   型

占用存储间

表数范围

byte

1字节

-128 ~ 127

short

2字节

-215 ~ 215-1 (-32768~32767)

int  (integer)

4字节

-231 ~ 231-1 (-2147483648~2147483647) 约21亿

long

8字节

-263 ~ 263-1

Java 语言整型常数的三种表示形式:

十进制整数,如:99, -500, 0。

八进制整数,要求以 0 开头,如:015。

十六进制数,要求 0x 或 0X 开头,如:0x15 。

Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’[雨林木风3]  ,如:

        long a = 55555555;  //不出错,在Int表示的范围内(21亿内)。

long b = 55555555555;//不加l出错,已经超过int表示的范围。报错:

The literal 55555555555 of type int is out of range

Java中没有无符号类型

 

浮点型

类    型

占用存储空间

表数范围

float

4字节

-3.403E38~3.403E38

double

8字节

-1.798E308~1.798E308

 

n  float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。

n  double表示这种类型的数值精度是float类型的两倍,又被称作双精度,绝大部分应用程序都采用double类型。

n  Java 浮点类型常量有两种表示形式

n  十进制数形式,例如:

n 3.14       314.0      0.314

n  科学记数法形式,如

n 314e2      314E2     314E-2

       double f = 314e2;  //314*10^2-->31400.0

      double f2 = 314e-2; //314*10^(-2)-->3.14

n  Float类型的数值有一个后缀F/f ,没有后缀F/f的浮点数值默认为double类型。也可以在浮点数值后添加后缀D/d, 以明确其为double类型:

 

3.浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。
        如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类

注:

         主要理由:由于字长有限,浮点数能够精确表示的数是有限的,因而也是离散的。浮点数一般都存在舍入误差,很多数字无法精确表示(例如0.1),其结果只能是接近, 但不等于。

 

二进制浮点数不能精确的表示0.1,0.01,0.001这样10的负次幂。并不是所有的小数都能可以精确的用二进制浮点数表示。

 

 

最好完全避免使用浮点数比较:   

        float f = 0.1f;

       double d = 1.0/10;

       System.out.println(f==d);   //false

 

 

大数值:

Java.math下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值。BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点运算。

 

 

浮点数使用总结:

1.       默认是double

2.       浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。

3.       最好避免比较中使用浮点数

 

字符型(2个字节):

n  单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。

n  char 类型用来表示在Unicode编码表中的字符。

n  Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;ASCII码占1个字节,可允许有128个字符,是Unicode编码表中前128个字符。

                char eChar = 'a';

char cChar ='中';

n  Unicode具有从0到65535之间的编码,他们通常用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)

                 char c = ‘\u0061;

n  Java 语言中还允许使用转义字符‘\’来将其后的字符转变为其它的含义,

         char c2 = '\n';  //代表换行符

转义符

含义

Unicode值

\b

退格(backspace)

\u0008

\n

换行

\u000a

\r

回车

\u000d

\t

制表符(tab)

\u0009

\“

双引号

\u0022

\‘

单引号

\u0027

\\

反斜杠

\u005c

 

注:以后我们学的String类,其实是字符序列(char sequence)[雨林木风4] 

 

boolean类型(一位,不是一个字节):

boolean类型有两个值,true和false,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。

n  boolean 类型用来判断逻辑条件,一般用于程序流程控制

         booleanflag ;

         flag= ………;

  if(flag) {

     // true分支

          } else {

    //  false分支

          }

实践:简洁是美德,请不要这样写:if ( is == true && done == false ) ,只有新手才那么写。
对于任何程序员 if ( whether && !done ) 都不难理解吧。所以去掉所有的==fasle 和 ==true。

 

固定的存储空间正是Java可移植性、跨平台的原因之一!

 

 

JAVA变量

Java是一种强类型语言,每个变量都必须声明其类型。

n  Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

n  变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:

q type  varName  [=value] [{,varName[=value]}] ;

n  注意事项:

q  每个变量都有类型,类型可以是基本类型,也可以是引用类型。

q  变量名必须是合法的标识符。

变量声明是一条完整的语句,因此每一个声明都必须以分号结束

 

n  变量声明举例:

   double salary ;   boolean done;

   long earthPopulation ;   int age ;

n  可以在一行中声明多个变量:

     int i ,j; // both are integers

q 不提倡这种风格,逐一声明每一个变量可以提高程序可读性。

n  可以将变量的声明和初始化放在同一行中,例如:

     intage = 18;    float e = 2.718281828f;

n  变量按被声明的位置可划分为:

q  局部变量:方法或语句块内部定义的变量

在使用前必须先声明和初始化(赋初值)。

                   public void incorrectLocalV() {

                            int i;

                            i=10;

                        int j = i+5 ; // 编译出错,变量i还未被初始化

                   }

 

 

q  实例变量(成员变量):方法外部、类的内部定义的变量

如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0[雨林木风5] ,布尔型默认是false)

 

课堂练习1:

public class LocalVariableTest {

         public static voidmain(String[ ] arg) {

                   boolean flag = true;  // 声明boolean型变量并赋值

                   char c1, c2;   // 声明char型变量

                   c1 = '\u0041';   // 为char型变量赋值

                   c2 = 'B';   // 为char型变量赋值

                   int x;   // 声明int型变量

                   x = 9;  //为int型变量赋值 

                   int y = x;  // 声明并初始化int型变量

                   float f = 3.15f;   // 声明float型变量并赋值

                   double d = 3.1415926;  //声明double型变量并赋值

         }

}

 

 

Final 常量

publicclass Constants {

         public static void main(String[] args){

                   final double PI = 3.14;

                   // PI = 3.15;    //error

                   double r = 4;

                   double area = PI * r * r;

                  doublecircle = 2 * PI * r;

                   System.out.println("area= " + area);

                   System.out.println("circle= " + circle);

         }

}

 

命名规则(规范)

1.      所有变量、方法、类名:见名知意

2.      类成员变量:首字母小写和驼峰原则  :  monthSalary

3.      局部变量:首字母小写和驼峰原则

4.       常量:大写字母和下划线:MAX_VALUE

5.      类名:首字母大写和驼峰原则:  Man, GoodMan

6.      方法名:首字母小写和驼峰原则: run(), runRun()

 

 

 

 

 

运算符

n  Java 语言支持如下运算符:

q  算术运算符:  +,-,*,/,%,++,--

q  赋值运算符 =

q  关系运算符:  >,<,>=,<=,==,!=  instanceof

q  逻辑运算符:  &&,||,!

q  位运算符:  &,|,^,~ , >>,<<,>>>(了解!!!)

q  条件运算符 ?:

q  扩展赋值运算符:+=,-=,*=,/=

 

二元运算符

整数运算:

如果两个操作数有一个为Long, 则结果也为long

没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

浮点运算:

         如果两个操作数有一个为double, 则结果为double.

         只有两个操作数都是float, 则结果才为float.

[雨林木风6] 

取模运算:

其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.000000004

要点:

  负数%负数=负数;
  负数%正数=负数;
  正数%负数=正数;

 

 

一元运算符(++, --):

       int a = 3;

       int b = a++;   //执行完后,b=3。先给b赋值,再自增。

       int c= ++a;   //执行完后,c=5。先自增,再给b赋值

 

注意:java中的乘幂处理:

       int a = 3^2;    //java中不能这么处理, ^是异或符号。

       double b = Math.pow(3,2);

 

Math类提供了很多科学和工程计算需要的方法和常数。

 

布尔逻辑表达符

逻辑与:&&,逻辑或:||,逻辑非:!。

逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。

逻辑与只要有一个为false, 则直接返回false.

逻辑或只要有一个为true, 则直接返回true;

boolean c = 1>2&&[d7] 2>(3/0);

 

位运算符:(了解)

         ~-- 取反          &   -- 按位与          

         |  -- 按位或  ^  -- 按位异或  

         <<:左移运算符, >>:右移运算符 >>>:无符号移位运算符

 

右移一位相当于除2取商。

左移一位相当于乘2。

       int a = 3*2*2;

       int b =3<<2;  //相当于:3*2*2;

 

       int a = 12/2/2;

       int b = 12>>2;

 

 

扩展运算符:

运算符

用法举例

等效的表达式

+=

    a += b

    a = a+b

-=

    a -= b

    a = a-b

*=

    a *= b

    a = a*b

/=

    a /= b

    a = a/b

%=

    a %= b

    a = a%b

 

 

字符串连接符:

分享至
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别:未分类┆阅读( 0)┆评论( 0) ┆ 返回博主首页┆ 返回博客首页
上一篇 HTML标记大全 下一篇 AWT图形界面

你可能感兴趣的:(java,Date,String,语言,float,byte)