Java学习

从零开始学习java编程

http://www.cnblogs.com/geeit/p/3284002.html

 

public class HelloWorld

{

    public static voidmain(String args[])

    {

   System.out.println("Hello World!");    //向控制台输出一条语句,同时必须以;结尾

    }    

}

运行程序:dos下:javac HelloWorld.java(使用javac 文件名.java进行编译)  

java HelloWorldjava 类名 输出)

 

1. Java注释分为三种:单行注释//  多行注释/**/  文档注释(javadoc)。API文档通常说细说明了每个类、每个方法的功能及用法。Java语言的API文档的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

2. java 组织形式:Java程序必须是以类class形式存在,类classJava程序的最小程序单位。Java解释器规定:如需某个类能被解释器直接解释执行,则这个类必须包含main方法,而且main方法必须使用pulbic static void来修饰,且main方法的形参必须是字符串数组类型(String args[]是字符串数组的形式) 也就是说main方法基本上固定不变的

3. Java源文件的命名规则

    1)Java程序源文件的后缀必须是.java,不能是其他文件后缀名

    2)一个Java源文件可以包含多个类定义,但最多只能包含一个public类定义;如果Java源文件里包含public类定义,则该源文件的文件名必须与这个public类的类名相同

    3Java语言是严格区分大小写的语言。因此源文件的文件名保存的时候也应注意大小写

    4Java程序中的关键字全部是小写的

 

1. 面向过程的思维:吃(猪八戒,西瓜);     面向对象的思维:猪八戒.吃(西瓜);

2. 最常用的UML包括用例图、类图、组件图、部署图、顺序图、活动图和状态机图等。

  http://www.ibm.com/developerworks/cn/rational/r-uml/

3. 面向对象方法具有三个基本特征:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism),其中封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能;继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法;多态指是的子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征.

Java语言使用class关键字定义类,定义类时可使用Field来描述该类对象的数据,可使用方法来描述该类对象的行为特征。Java语言使用extends关键字来表示继承关系。

Java使用new关键字来创建指定类的对象,每个类可以创建任意多个对象

标识符就是用于给程序中变量、类、方法命名的符号

Java一共包括48个关键字、2个保留字、3个直接量。

abstract

assert

boolean

break

byte

case

catch

char

class

continue

default

do

double

else

enum

extends

final

finally

float

for

if

implements

import

int

interface

instanceof

long

native

new

package

private

protected

public

return

short

static

strictfp

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while

2个保留关键字:gotot和const

3个直接变量:true、false、null

 

所有的变量必须先声明,后使用。

一个Java类型常量默认就是int类型。Long类型定义时,需加L或者l. Java语言的浮点类型默认是double类型, 定义float需要加f或者F.

Java中数常量有4种表示方式:十进制、二进制、八进制和十六进制,其中八进制整数常量以0开头,十六进制的整数常量以0X或者0x开头,其中10-15以a-f(不区分大小写)来表示。二进制以0b或0B开头表示。

所有数字在计算机底层都是以二进制形式存在的,原码是直接将一个数值换算成二进制数。但计算机以补码的形式保存所有整数。补码的计算规则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,只是最高位(符号位)保持不变。

对于float数值,第1位是符号位,接下来8位表示指数,再接下来的23位表示尾数;对于double类型数值,第1位也是符号位,接下来的11位表示指数,再接下来的52位表示尾数。Java语言的浮点数有两种表示形式: 1)十进制数形式:浮点数必须包含一个小数点,否则会被当成int类型处理    2)科学计数形式:例如:5.12E2(即5.12*10^2).  Java还提供了3个特殊的浮点数值:正无穷大,负无穷大和非数,用于表示溢出和出错. 正无穷大就是一个正数除以0,Double或Float的POSITIVE_INFINITY来表示;负无穷大通过Double或Float的NEGATIVE_INFINITY表示,非数通过Double或Float的NaN来表示。必须指出的是,所有的正无穷大数值都是相等的,所有的负无穷大数值都是相等的;而NaN不与任何数值相等,甚至和NaN都不相等。

字符型通常用于表示单个的字符,字符常量必须使用单引号(')括起来。字符型常量有3种表示形式:1)直接通过单个字符来指定字符型常量  2)通过转义字符来表示特殊字符型常量 3)直接使用Unicode值来表示字符型常量,格式是'\uXXX',其中XXX代表一个十六进制的整数。

 Java语言中常用的转义字符见下表:

转义字符

说明

Unicode表示方式

\b

退格符

\u0008

\n

换行符

\u000a

\r

回车符

\u000d

\t

制表符

\u0009

\"

双引号

\u0022

\'

单引号

\u0027

\\

反斜线

\u005c

字符型常量也可以采用十六进制编码方式来表示,范围是'\u0000'-'\uFFFF',一共可以表示65535个字符,其中前256个字符和ASCII码中字符完重合。

Java没有提供字符串的基本数据类型,而是通过String来表示字符串,由于字符串由多个字符组成,因此字符串常量使用双引号括起来。

布尔型只有一个boolean类型,用于表示逻辑上的“真”或“假”。在Java语言中,boolean类型的数值只能是true或false,不能用0或者非0代表。其他基本数据类型的值也不能转换成boolean类型。

Java 7引入了一个新功能:程序员可以在数值中使用下划线,不管是整型数值,还是浮点型数据,都可以自由地使用下划线。

 

Java语言所提供的7种数据类型之间是可以相互转换,有两种类型转换方式:自动类型转换和强制类型转换。

一个Java类型常量默认就是int类型。Long类型定义时,需加L或者l. Java语言的浮点类型默认是double类型, 定义float需要加f或者F.

Java中数常量有4种表示方式:十进制、二进制、八进制和十六进制,其中八进制整数常量以0开头,十六进制的整数常量以0X或者0x开头,其中10-15以a-f(不区分大小写)来表示。二进制以0b或0B开头表示。

所有数字在计算机底层都是以二进制形式存在的,原码是直接将一个数值换算成二进制数。但计算机以补码的形式保存所有整数。补码的计算规则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,只是最高位(符号位)保持不变。

对于float数值,第1位是符号位,接下来8位表示指数,再接下来的23位表示尾数;对于double类型数值,第1位也是符号位,接下来的11位表示指数,再接下来的52位表示尾数。Java语言的浮点数有两种表示形式: 1)十进制数形式:浮点数必须包含一个小数点,否则会被当成int类型处理    2)科学计数形式:例如:5.12E2(即5.12*10^2).  Java还提供了3个特殊的浮点数值:正无穷大,负无穷大和非数,用于表示溢出和出错. 正无穷大就是一个正数除以0,Double或Float的POSITIVE_INFINITY来表示;负无穷大通过Double或Float的NEGATIVE_INFINITY表示,非数通过Double或Float的NaN来表示。必须指出的是,所有的正无穷大数值都是相等的,所有的负无穷大数值都是相等的;而NaN不与任何数值相等,甚至和NaN都不相等。

字符型通常用于表示单个的字符,字符常量必须使用单引号(')括起来。字符型常量有3种表示形式:1)直接通过单个字符来指定字符型常量  2)通过转义字符来表示特殊字符型常量 3)直接使用Unicode值来表示字符型常量,格式是'\uXXX',其中XXX代表一个十六进制的整数。

 Java语言中常用的转义字符见下表:

转义字符

说明

Unicode表示方式

\b

退格符

\u0008

\n

换行符

\u000a

\r

回车符

\u000d

\t

制表符

\u0009

\"

双引号

\u0022

\'

单引号

\u0027

\\

反斜线

\u005c

字符型常量也可以采用十六进制编码方式来表示,范围是'\u0000'-'\uFFFF',一共可以表示65535个字符,其中前256个字符和ASCII码中字符完重合。

Java没有提供字符串的基本数据类型,而是通过String来表示字符串,由于字符串由多个字符组成,因此字符串常量使用双引号括起来。

布尔型只有一个boolean类型,用于表示逻辑上的“真”或“假”。在Java语言中,boolean类型的数值只能是true或false,不能用0或者非0代表。其他基本数据类型的值也不能转换成boolean类型。

Java 7引入了一个新功能:程序员可以在数值中使用下划线,不管是整型数值,还是浮点型数据,都可以自由地使用下划线。

 

Java语言所提供的7种数据类型之间是可以相互转换,有两种类型转换方式:自动类型转换和强制类型转换。

当上图的类型需要逆向左边转换的时候,则必须使用强制类型转换,强制类型转换的语法格式:

(类型名)Value

            在通常情况下,字符串不能直接转换为基本类型,通过基本类型对应的包装类则可以实现把字符串转换成基本类型。Java8种基本类型都提供了对应的包装类:boolean对应的Booleanbyte对应的Byteshort对应的Short类,int对应的Intergerlong对应的Longchar对应的Characterfloat对应Floatdouble对应的Double类,8个包装类都提供了一个parseXxx(Stringstr)静态于将字符串转换为基本类型。(

int Val=Interger.parseInt( String s);

            基本类型转为字符串:String.valueOf(127) “ 127”

 

static修饰的变量为静态变量。静态变量,默认初始值为0。静态变量上再加个final修饰,则为静态常量。静态语句块中定义的局部变量值的变化,不影响其他的值。

x++表示先运算,再自增,++x表示先自增再参与运算。

 

try-catch-finally语句执行过程中,

1)如果try中没有异常抛出

执行到try块时,如果return后面跟的是个语句,把该语句运算完,暂时放下不return

寻找并执行finally语句块,如果finally中有return语句,就执行并return,方法结束;如果没有return语句,就返回执行try中的return,方法结束

2)如果try中抛出异常

try块中抛出异常的这个语句后面的语句都不会执行,后面的return执行不到

catch块捕获后,执行catch块,到return语句时,运算完return后面的语句,暂时放下不return

寻找并执行finally语句块,遇到return语句,运算并return,方法结束;如果没有return语句,就返回执行catchreturn,方法结束

 

 

字符串有两种情况,一种是字符串直接量,存储在常量池中,常量池也在堆内存中;一种是堆内存中的字符串对象,存储在堆内存中

1)用""创建的字符串位于常量池

2)用new String()构造方法创建的字符串位于堆内存中,运行期创建

3)用"+"连接的字符串直接量,在编译器就可以确定连接后的值,因此属于常量池

4)用"+"连接的是字符串和变量或者方法返回值,则要到运行期才能确定,属于堆内存对象

5)其他:

String s1=newString("ABC");String s2=new String("ABC");这两个语句创建了3String对象

Eclipse中单步调试和断点设置:

第一步:

设置断点:在该行最前面边框双击  或快捷键:Ctrl+Shift+B

第二步:

Debug 运行启动

第三部:

运行到断点后:

使用快捷键F5,F6F7单步执行。

F5Step into/进入该行的函数内部

F6Step over/一行一行执行

F7Step return/退出当前的函数

 

            JavaString转换 常用的方法有:

            1.(String) 要转换的对象:

                       这是标准的类型转换,对象类型必须能转成String类型,最好用instanceof做个类型检查,容易出错。

            2. object.toString():必须保证object不是null值,

            3.String.valueOf(object):  objectnull 时,String.valueOfobject)的值是字符串”null”,而不是null!!!

           

            引用就是给变量起了个别名,引用不占内存,所以在不另外开辟新的空间给变量;指针则要另外开辟空间存放变量的地址;枚举的特点就是顺位递增,0-n;结构体则是把它所包括的所有类型变量都存进去。

1.代码是存在程序区,压根不会与栈区相关

2.函数递归调用会压栈入栈

3.局部变量存在

 

容器:Collection +Map


           

 

String 字符串常量

StringBuffer 字符串变量 线程安全

StringBuilder 字符串变量 非线程安全

Builder >Buffer>String, 第一个比第二个要快,两者的方法基本相同,优先选择第一个。Buffer 主要操作有append insert方法。String是不可变的对象,每次改变相当于一个新的String对象;而StringBuffer每次的操作都是对象本身。处理速度两者有时基本差不多。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值