黑马程序员_java基础
2013-12-01 15:25
190 查看
------- android培训、java培训、期待与您交流! ----------
课程中常用的dos命令
1. dir : 列出当前目录下的文件及文件夹.(了解就可以,不做重点掌握.)
2. md : 创建目录
3. rd : 删除目录
4. cd : 进入指定目录
5. cd.. :退回到上一级目录
6. cd/ : 退回到根目录
7. del : 删除文件(dos里面删除的文件不走回收站)
8. exit : 退出dos命令行
第一个Java程序
需求:写一个小程序:输出:hello world
步骤:1 . 用关键字class定义一个类,把要要输出的语句写在类中
2 . 为了保证程序的独立运行,在类中定义一个主函数:public static void main(String[] args)
3 . 将类所在的文件保存成扩展名为java的文件
4 . 在dos控制台通过javac对java文件进行编译
5 . 再通过java对编译后的class文件进行编译
class Demo//定义一个类
{
//主函数
public static void main(String[] args)
{
//输出语句
System.out.println("hello java");
}
}
java语言的基础组成: 关键字、标识符、注释、变量和常量、运算符、语句、函数和数组。
一 标识符
java中的标识符是由26个英文字母的大小写,数字,_和$组成。(注意:_和数字不能开头)
(1)包名:由多个单词组成时全都用小写(xxxyyyzzz)。
(2)类名和接口名:由多单词组成时首字母大写(XxxYyyZzz)。
(3)变量名和函数名:由多单词组成时,第一个单词小写,第二个单词开始首字母都大写(xxxYyyZzz).
(4)常量名:所有字母都大写且单词之间 用下划线隔开(XXX_YYY_ZZZ)
二 变量和常量
1、常量
常量是由整数常量、小数常量、布尔型常量、字符型常量(用单引号)、字符串(双引号)和null常量组成。
注意:负数的二进制表现是其正数的二进制取反再加一。
例:6的二进制是110,因为6是int,所以
6对应的二进制是0000-0000 0000-0000 0000-0000 0000-0110
-6对应的二进制是1111-1111 1111-1111 1111-1111 1111-1010
2、变量
定义:将不确定的数据进行存储,需要在内存中开辟一个空间,空间里的数据类型必须相同。
格式:数据类型 变量名称=初始化值
注意:整数默认的类型是int,小数默认的类型是double,若果数据是float其后必须加f(float f=1.2f)。
3、数据类型转化
byte b=3;
b=b+2;
运行时,编译会出错;原因是:b为byte类型,2是int类型,进行计算时,计算机底层会进行自动转化(小变大),所以(b+2)的结果是int类型,为了让编译通过可以给结果进行强制转化(大变小)其形式是:(byte)(b+2)。
三 运算符
java中的运算符包括算术运算符、赋值运算符、比较运算符、逻辑运算符和位运算符
1、赋值运算符
注意:s=s+5和s+=5区别
第一个是两个运算(先进行算数运算再赋值运算),第二个只有赋值运算。
2'、逻辑运算
&和&&,|和|| 区别
&&:左边为False,则右侧不必再运算。&:左右都必须运算。
||:左边为true,则右侧不必再运算。|:左右都必须运算。
3、位运算
<<:左移; >>右移; >>>无符号右移.
小方法:(1)转移字符:\n:换行 \b:推格 \r:相当于回车 \t:制表符
(2)两数互换:运用第三方变量。
例:int a=3,b=4,temp;
temp=a;
a=b;
b=temp;
四 程序流程控制
1、if语句和三元运算符的互换
if语句:if(条件表达式)
{表达式}
else{表达式}
三元运算符:变量=(条件表达式)?表达式1;表达式2;
三元运算符的好处:可以简化if语句的代码;
缺点:因为是一个运算符,所以必须有结果。
2、if语句和switch区别
若判断的具体数值不多,且符合byte、int、char、short这四种类型,虽然两个语句都可以使用,但是switch更高效些。
若是对区间判断或结果为boolean类型时使用if。
3、while和do while的区别
(1)while语句是先进行判断再执行语句;do while则是先执行语句,再进行判断。
(2)do while至少进行一次语句的执行。
4、for和while的区别
(1)for的变量只在for的作用范围内,出了for的作用范围就会自动消除。
(2)while的变量则是作用于整个函数。
(3)若是变量只为循环次数而存在就选用for。
小方法:(1)无限循环的简单表达式:for(;;);while()(默认为true)
(2)for嵌套时:尖朝下,改变循环条件;尖朝上,改变初始化值。
五 函数
定义:函数就是定义在类中具有特定功能的一段小程序(也叫方法)。
格式:修饰符 返回值类型 函数名(参数类型1 形参1;参数类型2 形参2)
{
执行语句;
return 返回值;
}
特点:(1)定义函数可以将功能代码进行封装,便于提高功能的复用性。
(2)函数被调用时才会执行。
注意:(1)函数值能调用函数,不能在函数中再定义函数。
(2)定义函数时,函数的结果应返回给调用者。
函数的重载:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数和参数类型不同即可。
六 数组
1、定义:同一种类型数据的集合,其实就是一个容器。(好处:可以给数进行编号)
格式:数据类型[] 数组名=new 数组名{元素的个数}
2、内存结构
java在运行时,需要在内存中分配空间,为了提高运算的效率,就对内存空间进行了划:栈内存、堆内存、方法区、本地方法区、寄存器。
(1)栈内存:用于存储局部变量,当数据使用完,所占空间就会自动释放。(比如:数组名)
(2)堆内存:数组和类,通过new建立的实例都放在堆内存中;每一个实体都有一个地址值;实体不在被引用时,会不定时的被垃圾回收器回收。
3、数组中设计到的一些函数
(1)数组的遍历
(2)选择排序
(3)冒泡排序
(4)折半查找
------- android培训、java培训、期待与您交流! ----------
课程中常用的dos命令
1. dir : 列出当前目录下的文件及文件夹.(了解就可以,不做重点掌握.)
2. md : 创建目录
3. rd : 删除目录
4. cd : 进入指定目录
5. cd.. :退回到上一级目录
6. cd/ : 退回到根目录
7. del : 删除文件(dos里面删除的文件不走回收站)
8. exit : 退出dos命令行
第一个Java程序
需求:写一个小程序:输出:hello world
步骤:1 . 用关键字class定义一个类,把要要输出的语句写在类中
2 . 为了保证程序的独立运行,在类中定义一个主函数:public static void main(String[] args)
3 . 将类所在的文件保存成扩展名为java的文件
4 . 在dos控制台通过javac对java文件进行编译
5 . 再通过java对编译后的class文件进行编译
class Demo//定义一个类
{
//主函数
public static void main(String[] args)
{
//输出语句
System.out.println("hello java");
}
}
java语言的基础组成: 关键字、标识符、注释、变量和常量、运算符、语句、函数和数组。
一 标识符
java中的标识符是由26个英文字母的大小写,数字,_和$组成。(注意:_和数字不能开头)
(1)包名:由多个单词组成时全都用小写(xxxyyyzzz)。
(2)类名和接口名:由多单词组成时首字母大写(XxxYyyZzz)。
(3)变量名和函数名:由多单词组成时,第一个单词小写,第二个单词开始首字母都大写(xxxYyyZzz).
(4)常量名:所有字母都大写且单词之间 用下划线隔开(XXX_YYY_ZZZ)
二 变量和常量
1、常量
常量是由整数常量、小数常量、布尔型常量、字符型常量(用单引号)、字符串(双引号)和null常量组成。
注意:负数的二进制表现是其正数的二进制取反再加一。
例:6的二进制是110,因为6是int,所以
6对应的二进制是0000-0000 0000-0000 0000-0000 0000-0110
-6对应的二进制是1111-1111 1111-1111 1111-1111 1111-1010
2、变量
定义:将不确定的数据进行存储,需要在内存中开辟一个空间,空间里的数据类型必须相同。
格式:数据类型 变量名称=初始化值
注意:整数默认的类型是int,小数默认的类型是double,若果数据是float其后必须加f(float f=1.2f)。
3、数据类型转化
byte b=3;
b=b+2;
运行时,编译会出错;原因是:b为byte类型,2是int类型,进行计算时,计算机底层会进行自动转化(小变大),所以(b+2)的结果是int类型,为了让编译通过可以给结果进行强制转化(大变小)其形式是:(byte)(b+2)。
三 运算符
java中的运算符包括算术运算符、赋值运算符、比较运算符、逻辑运算符和位运算符
1、赋值运算符
注意:s=s+5和s+=5区别
第一个是两个运算(先进行算数运算再赋值运算),第二个只有赋值运算。
2'、逻辑运算
&和&&,|和|| 区别
&&:左边为False,则右侧不必再运算。&:左右都必须运算。
||:左边为true,则右侧不必再运算。|:左右都必须运算。
3、位运算
<<:左移; >>右移; >>>无符号右移.
小方法:(1)转移字符:\n:换行 \b:推格 \r:相当于回车 \t:制表符
(2)两数互换:运用第三方变量。
例:int a=3,b=4,temp;
temp=a;
a=b;
b=temp;
四 程序流程控制
1、if语句和三元运算符的互换
if语句:if(条件表达式)
{表达式}
else{表达式}
三元运算符:变量=(条件表达式)?表达式1;表达式2;
三元运算符的好处:可以简化if语句的代码;
缺点:因为是一个运算符,所以必须有结果。
2、if语句和switch区别
若判断的具体数值不多,且符合byte、int、char、short这四种类型,虽然两个语句都可以使用,但是switch更高效些。
若是对区间判断或结果为boolean类型时使用if。
3、while和do while的区别
(1)while语句是先进行判断再执行语句;do while则是先执行语句,再进行判断。
(2)do while至少进行一次语句的执行。
4、for和while的区别
(1)for的变量只在for的作用范围内,出了for的作用范围就会自动消除。
(2)while的变量则是作用于整个函数。
(3)若是变量只为循环次数而存在就选用for。
小方法:(1)无限循环的简单表达式:for(;;);while()(默认为true)
(2)for嵌套时:尖朝下,改变循环条件;尖朝上,改变初始化值。
五 函数
定义:函数就是定义在类中具有特定功能的一段小程序(也叫方法)。
格式:修饰符 返回值类型 函数名(参数类型1 形参1;参数类型2 形参2)
{
执行语句;
return 返回值;
}
特点:(1)定义函数可以将功能代码进行封装,便于提高功能的复用性。
(2)函数被调用时才会执行。
注意:(1)函数值能调用函数,不能在函数中再定义函数。
(2)定义函数时,函数的结果应返回给调用者。
函数的重载:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数和参数类型不同即可。
六 数组
1、定义:同一种类型数据的集合,其实就是一个容器。(好处:可以给数进行编号)
格式:数据类型[] 数组名=new 数组名{元素的个数}
2、内存结构
java在运行时,需要在内存中分配空间,为了提高运算的效率,就对内存空间进行了划:栈内存、堆内存、方法区、本地方法区、寄存器。
(1)栈内存:用于存储局部变量,当数据使用完,所占空间就会自动释放。(比如:数组名)
(2)堆内存:数组和类,通过new建立的实例都放在堆内存中;每一个实体都有一个地址值;实体不在被引用时,会不定时的被垃圾回收器回收。
3、数组中设计到的一些函数
(1)数组的遍历
/*打印数组*/ public static void printArray(int[] arr) { System.out.print("{"); for(int x=0;x<arr.length ;x++) { if(x!=arr.length-1) System.out.print(arr[x]+","); else System.out.println(arr[x]+"}"); } }
(2)选择排序
/* 选择排序:第一个数一次和后面的每一个数比大小,小的换到第一位; 然后第二个数开始后后面的一次比. */ public static void selectSort(int[] arr) { //循环次数,"-1"是因为最后一个数字不用比了 for(int x=0;x<arr.length-1;x++) { //比较次数,"+1"是避免同一个数相比较 for(int y=x+1;y<arr.length;y++) { if(arr[x]<arr[y]) { int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; } } } }
(3)冒泡排序
/* 冒泡排序:相邻两数相比较,将大的数(或小的数)一次放到后面 */ public static void bubbleSort(int[] arr) { //循环的次数,"-1"是因为一个数字不能比较 for(int x=0;x<arr.length-1;x++) { //比较的次数,"-x"是循环一次数组就会少比较一个数,"-1"防止数组角标越界 for(int y=0;y<arr.length-x-1;y++) { if(arr[y]<arr[y+1]) { int temp=arr[y]; arr[y]=arr[y+1]; arr[y+1]=temp; } } } }
(4)折半查找
/*折半查找:必须建立在有序数组的基础上 */ public static int halfSearch(int[] arr,int key) { int min=0,max=arr.length-1,mid=(min+max)/2; //循环的条件:key值是否等于数组的中间值 while(arr[mid]!=key) { //若中间值小于key值,说明key处在中间值和最大值之间 if(key>arr[mid]) //此时就应该把中间值的下一位赋给最小值,继续折半 min=mid+1; //若中间值大于key值,说明key处在中间值和最小值之间 else if(key<arr[mid]) //此时就应该把中间值的上一位一位赋给最大值,继续折半 max=mid-1; //如果key不存在,则返回"-1" if(min>max) return -1; //循环一次,折半一次 mid=(min+max)/2; } return mid; }
------- android培训、java培训、期待与您交流! ----------
相关文章推荐
- 黑马程序员——Java基础----面向对象(概述)(1)
- 黑马程序员__java基础视频day3、day4
- 黑马程序员@java基础中重点之面向对象
- 黑马程序员_java基础day04
- 黑马程序员_java基础笔记(15)...银行业务调度系统_编码思路及代码
- 黑马程序员-Java语言基础 第2天
- 黑马程序员——java基础——Java集合中TreeSet实现元素唯一性的方法
- 黑马程序员 java基础 集合框架之泛型
- 黑马程序员——Java基础——IO流(模拟BufferedReader类中的readLine()方法)
- 黑马程序员-Java基础知识总结(超级经典)
- 黑马程序员——Java基础---线程的另一个总结(5)--线程池,线程定时器
- 黑马程序员__java基础视频day5
- 黑马程序员——java基础语法
- 黑马程序员_Java基础_多线程_12
- 黑马程序员——Day02之Java语言基础组成(一)
- 黑马程序员——Java基础---GUI(图形用户界面)
- 黑马程序员-->Java基础加强-->类加载器
- 黑马程序员—Java基础—集合
- 黑马程序员——Java基础--内部类总结
- 黑马程序员——Java基础---泛型、集合框架工具类:collections和Arrays