您的位置:首页 > 职场人生

黑马程序员--JAVA基础知识学习笔记

2015-06-19 16:08 591 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

java语言的基础组成

1.关键字

定义:被JAVA语言赋予了特殊含义的单词

特点:关键字中的所有字母都为小写

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

class、interface、byte、short、int、long、float、double、char、boolean、vold

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

true、false、null

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

If、else、switch、case、default、while、do、for、break、continue、return

2.标识符

a.在程序中自定义的一些名称

b.在26个英文字母大小写,数字:0-9符号:_$组成

c.定义合法标识符规则:

1不能以数字开头

2不能使用关键字

d.java中严格区分大小写

e.注意在起名时,为了提高阅读性,要尽理有意义。

标识符规则:

(由26个大小写字母,0-9,_和$符号组成)数字不可以开头,不可以

使用关键字。

包名: xxxyyyzzz全小写

类名,接口名: XxxYyyZzz 不同单词首字母大写

变量名,函数名 xxxYyyZzz 第一个字母小写,单词首字母大写

常量名 XXX_YYY_ZZZ 都大写但用_分开不同单词

系统默认整数为int 小数为 double

基本数据临行 1字节 byte(字节)-127-128

整数类型 byte shortint long 2字节 short char

浮点类型 floatdouble 4字节 int float

字符型char 8字节 long double

布尔型boolean

引用类型 class interface 数组([]) 1Byte=4byte=32位

类型转换:系统默认是可以从低位转到高位(即自动类型提升),这样不会损失精度。高位像低位转换必须强制转换,不然会编译失败。

但是如果是整数和小数在运算时候一般会自动转成小数类型(单位相同下)

Char类型也可以参加运算的,因为它的ascII表对应着相应的值是按这些值运算的

运算符 int x=323 x/100*100=300 因为两个int相乘结果还为int型又因为小数默认是double的 所以除完得3最后得300,终于明白为什么相除后把余数去掉的原因啦~~~! %模运算 是取余数

b=a++和b=++a的区别在于前者是先赋值再给a++后者是先给a自增再赋值其他情况雷同。

字符串数据和任何数据使用+都是相连接,最终都会变成字符串,一般出现在打印语句中

转义字符 通过\来转变后面字母或者符号的含义 \n换行 \b退格 \r 按下回车键

\t 制表符相当于tab键

赋值运算符 ints=3; s=s+2; s+=s;

s=s+2编译失败,因为加完是变成int型。无法赋值给short型

s+=2 编译成功,因为+=运算符在给s赋值是,自动完成了强制转换操作

逻辑运算符 & and(与) 两个都为真结果为真 如 x>3&x<6 (3<x<6)

| or(或) 至少一个为真结果为真

^ xor(异或)两边不一样结果为真

! not(非) 左边非真结果为假

&& and (短路,且) &和&&的区别运算方式都一样,但是&&的左边条件为假的时候右边条件就不用运算了,因为其结果必然为假,而&不管左边结果如何都要进行两次运算

!! or (短路,或) |和|| 同样的道理

位运算符 >>右移时最高位补什么由原有数据最高位而定。如果最高位为0,右移后用0补。如果最高位是1,右移后用1补空位.而>>>(无符号右移)不管最高位是什么,右移后,最高位都用0补

一个数异或同一个两次结果还是那个数,可以用于交换数据,加密等等。

例如:int n=3,m=4;交换n和m的值,不用第三方变量

n=n^m n=n^m

m=n^m m=n^m=(n^m)^m=n; m=n了

n=m^n n=m^n=m^(n^m)=(n)^(m^n)=m 所以就交换了

if和switch语句的选择:

如果判断的具体数值不多,而是符合byte,short,int,char这四种类型虽然两个语句都可以使用,但是建议使用switch语句,因为这样效率高些。

其他情况:对区间的判断,结果为boolean类型判断,使用if的更多些

While和do while的区别

前者只有条件满足才执行循环体,后者先执行一次循环体,才判断条件是否满足,即便是条件不满足都要执行一次循环体

continue语句:应用于循环结构 break应用于选择和循环结构

注:它两离开了应用范围,存在时没有意义的

它两单独存在的下面都不可以有语句,因为执行不到

continue语句是结束本次循环继续下次循环

标号的出现可以让它们作用于指定的范围

什么是函数

函数就是定义在类中的具有特定功能的一段独立小程序。也称为方法

如何定义一个函数:

1. 既然函数是一个独立的功能,那么该功能的运算结果是什么先明确

2. 在明确在定义该功能的过程中是否要未知的内容参与运算

函数的重载

重载的概念

在同一个类中,允许存在一个以上的同名函数,只要它们的参数或参数类型不同即可。

重载特点:

与返回值类型无关,只看参数列表。

重载的好处:

方便竞阅读,优化了程序设计。

数组的定义:

概念

同一种类型数据的集合,其实数组就是一个容器

数组的好处

可以自动给数组中的元素从0开始编号,方便操作这些元素。

格式1:元素类型[] 数组名= new 元素类型 [元素个数或数组长度]

int[] arr = new int[5];

格式2:元素类型[] = new 元素类型[]{元素,元素,…………}

int[] arr = new int[]{3,5,7,1,7}

int[] arr = {3,5,7,1,7}

内存结构

JAVA程序在运行时,需要在内存中分配空间。为了提高运算效率,对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

栈内存

用于存储局部变量,当数据使用完,所占空间会自动释放。

堆内存

数组和对象,通过new建立的实例都存放在堆内存中。

每一个实体都有内存地址值

实体中的变量都有默认初始化值

实体不再被使用,会在不确定的时间内被垃圾回收器回收。

New出来的实例都放在堆空间内。

Int [] x = new int[3];

X指向了这个数组,或引用了这个数组,只存储了这个数组的对应数组的首地址的值。

public class Leanr {

public static void main(String args[]) {

int[] x = new int[3];

System.out.print(x + "==" + x[0]);

}

}

数组在被定义后,里面的元素都有默认值,具体值依元素的数组类型而定。

两个引用指向同一个数组时,两个引用同时操作这个数组。

栈和堆的不同,栈自动释放,堆采用垃圾回收机制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: