Java学习(四)Java基础

一、熟悉2、8、10、16进制之间的转换

1、 4位2进制代表一位16进制,3位2进制代表一位8进制。

    eg: (10)16=(00010000)2=(00010000)2

2、X进制(X为2、8、16)转10进制,用乘法。第n位X进制,相当于乘以X进制的n-1次。

    eg: (1111)16=(1*16^3+1*16^2+1*16^1+1*16^0)10

3、10进制转X进制(X为2、8、16),分整数部分和小数部分。

(1)整数部分用除法。用要转换的整数除以X进制,记录余数,直到商为0 ,将得到的余数倒写。

    eg: (16)10=(10000)2

(2)小数部分用乘法。用要转换的小数乘以X进制,记录小数点前的部分,直到小数点后半部分为零。

    eg:(0.125)10=(0.001)2

二、Java基本的数据类型和存储方式

 1、

2、Java中存储数据用寄存器、栈、堆。

寄存器不能直接控制处理。

对于栈空间来说,先进后出是它的特点,且存取数据的效率高、JVM的基本类型数据存放在栈空间,但是栈空间的存储空间较小,不能存放大量的数据。

对于堆空间来说,数据存放的位置是随机分配的,而且堆空间存储数据的空间大,可以存放大量数据,但是堆空间存取数据的效率最低。

3、Java底层是用一个16位整数去处理char类型,该数值是一个字符的unicode的编码值。数字0对应48,大写A对应65,小写a对应97。

4、String(字符串)

(1)声明:String 字符串名称="XXX";//栈内存

(2)声明并初始化:String 字符串名称=new String("XXX") //堆内存

(3)==比较的是地址,equals比较的是内容。//变量1.equals(变量名2)

(4)str=str+"";//只是改变指向,实际内容并未修改。字符串内容不能被修改。

(5)求字符串长度用“字符串名.length();”可以得到。

(6)字符串转数组用“字符串名.toCharArray() ;”可以得到。

(7)从字符串提取出指定位置字符用“字符串名.charAt();”可以得到。

(8)过滤字符串中存在的字符:“字符串名.indexOf();”可以得到。

(9)去掉字符串的前后空格:“字符串名.trim();”可以得到。

(10)从字符串中取出子字符串 “字符串名.subString();”可以得到。

(11)大小写转换: “字符串名.toLowerCase();”或者 “字符串名.toUpperCase();”可以得到。

(12)判断字符串的开头结尾字符:endsWith()   startWith()

(13)替换String字符串中的一个字符:replace()

(14)StringBuffer是可以更改的,区别于String。StringBuffer是一个操作类,必须通过实例化进行操作。

            可以用insert(插入的位置,插入的内容)进行插入;

            可以用replace(开始插入的位置,截止位置,替换内容)进行替换;

              indexOf使用参照String

5、StringBuilder

(1)在 字符串缓冲区被单个线程使用的时候,建议优先考虑,速度快于StringBuffer。

(2)如果涉及到线程安全方面,建议使用StringBuffer。 

(3)常用方法:append()和insert()

三、几个量

1、常量:不变的量。

2、变量:可变的量。方便记忆、可简化计算。

(1)命名一般要求:首字母为$/_/英文字母,之后可以包括数字。一般首字母不为大写,大写的一般用于定义类和接口。或用驼峰命名法,即第二个单词首字母大写。

(2)定义要求:标明类型。

(3)使用原则:初始化,用“=”初始化。

(4)自增自减:i++;先运算后自加1;++i;先自加1后运算。

(5)借助第三个变量进行数据交换。

3、字面量:Java变量和常量存储的具体的数据。

4、运算类型不同时,出现小类型、大类型之间的转换。大类型由高到低依次为byte、short、int、long、float、double。大类型转为小类型时,最高位由数据变为符号位。

四、转移字符、获取数据、Java错误类型、调试、逻辑运算

1、转义字符“\”:‘\n’表示回车;'\t'表示制表位字符,可向右跳至少8个字符;'\\'表示\;‘‘\'’表示单引号;‘\“’表示双引号;‘\uXXXX’表示unicode编码对应的字符。

2、 获取数据的方式:

    通过args数组获取数据:在Run-Run Configurations中添加新的java application,并在Arguments添加新的参数。

    通过scanner类用于扫描控制台输入的数据:eg:String、int、double都可以通过直接的语句进行获取,

    比如double nextDouble(),Char通过CharAt()方法从next()或者nextLine()获取输入的字符。

    eg:char String.charAt(int index); next()charAt(int index);

    step:创建Scanner类的一个对象(Scanner scanner=new Scanner(System.in);)再通过scanner调用next等方法。

import java.util.Scanner(注意可以导入包)

3、Java错误类型:编译期语法错误(定义int但是后面赋值double)、运行期异常错误(运行时发现之前写的代码错误,通常会提示错误的类型和出错的位置)、运行期逻辑错误(程序执行的结果和预期不同)。

4、调试(debug)是查找、解决软件中逻辑错误代码。debug调试。

5、断点(break point)是在源代码的可执行部分的指定行设置一个标志,在调试运行方式下,程序运行到该断点标志处会自动暂停,等待下一步操作。双击行号左边出现断点,再次双击去掉。

6、关系运算种类如图所示,关系运算结果是true或者false。作用是判断语句和流程控制作用。

7、逻辑运算如图所示。

以与运算为例,两边都是数时进行按位于运算,两边都是关系时是逻辑运算。

长路运算和短路运算的区别是,长路运算会将两边都计算出来。

三种逻辑运算优先级:非运算最高,其次是与运算,优先级最低的是或运算。

8、异常

(1)定义:是导致程序中断运行的一种指令流,如果不对异常进行正确处理,可能导致程序的中断执行,造成不必要的损失。

(2)异常实例:对象只声明并为实例化、 被除数为0。。

(3)处理异常:

        格式为:

                     try{异常语句}

                     //可以写多个catch

                     catch{Exception e}//Exception是父类,捕捉所有异常,出现其他异常也会被Exception捕捉。 

                    finally{一定会执行的代码}

(4)常见异常

五、循环语句

1、if语句

(1)用于判断不用的条件,执行相应的代码。

(2)格式(else部分可省略):

                       if  (条件表达式)  {条件表达式为true时,执行本代码}

                       else{条件表达式为false时,执行本代码}

或者是 嵌套类:

                       if  (条件表达式1)  {条件表达式1为true时,执行本代码}

                       else if(条件表达式2){条件表达式2为true时,执行本代码}

                       else if(条件表达式n){条件表达式n为true时,执行本代码}                 

2、switch语句

(1) 用于选择,属于分支的一种。在JDK1.7之前switch语句限定对整形数据进行判断。

(2)格式为:

                     switch(表达式){

                    case 常量1:代码1;break;

                    case 常量n:代码n;break

                     default:

                                以上常量均不是,执行本代码。 

                       }

注意:没有break就会一直执行之后的代码。

            char grade=input.next().charAt(0);//索引第一个字符。

3、while

(1)格式1:

                      while(条件表达式){表达式为真就执行代码}

(2)格式2:(需无条件执行一次)

                   do{循环内容} while(条件表达式);

4、for

(1)格式:

         for(循环变量初始化;循环继续的条件表达式;循环变量值变更){循环体内容}

六、Java数组

1、定义:

          有序数据的集合,每个元素均有相同的数组名和不同的下标做唯一标识。

2、 分类:按维数:一维、 二维、三维

3、数组声明:

(1)一维:type arrayName[];//type[] arrayName;

(2)二维:typearrayName[] [] ;//arrayName[][]=new type[行][列];

(3)内存分配:分配内存才能访问他的元素。使用new为数组分配内存空间

          eg:int score[]=nulll;//null表示引用数据类型的默认值

               score=new int[10];// 为数组开辟空间

猜你喜欢

转载自blog.csdn.net/hxl0925/article/details/80757456