JAVA基础知识学习笔记

------<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]);


}


}

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

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

栈和堆的不同,栈自动释放,堆采用垃圾回收机制。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值