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

黑马程序员――java基础篇

2014-04-01 11:56 239 查看
------- android培训java培训、期待与您交流! ----------
一、初识java1、基础常识 1.1什么是软件? 软件:一系列按照特定顺序组织的计算机数据和指令的集合。 1.2什么是开发?制作软件 1.3软件的出现实现了人与计算机之间的更好的交互。 1.4交互方式 图形化界面:这种方式简单直观,使用者易于接受,容易上手操作。(视窗操作系统) 命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作,较为麻烦,需要记录住一些命令。 Dos命令行,课程中常见的命令。 dir:列出当前目录下的文件以及文件夹。 md:创建目录。md kkk 创建名为kkk的目录 rd:删除目录。 rd kkk 删除名为kkk的目录\文件夹(空) cd:进入指定目录。cd abc\op 进入abc目录中的op文件夹 cd..:退回到上一级目录。 cd\:退回到根目录。 del:删除文件。del op 删除op文件夹中的所有文件,op保留(删除的文件不走回收站) exit:退出dos命令行。 1.5通过dos命令行的演示,发现原来操作计算机就如同和计算机说话一样。 1.6我们告诉它做什么,它就可以做什么。前提是,我们和它说的内容它必须识别才可以。这就是计算机语言。2、java语言概述 2.1是SUN(Stanford University Network,斯坦福大学网络公司)1995年推出的一门高级语言。 2.2是一种面向Internet的编程语言。 2.3随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。 2.4是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。 2.5 java语言的三大技术框架 J2EE(Java2 Platform Enterprise Edition)企业版是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如Servlet Jsp等,主要针对于Web应用程序开发。 J2SE(Java 2 Platform Standard Edition)标准版是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发,比如java版的扫雷。
J2ME(Java2 Platform Micro Edition)小型版是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。 Java5.0版本后,更名为JAVAEE、AVASE、JAVAME。 2.6Java语言特点:跨平台性。什么是跨平台性?通过java语言编写的应用程序在不同的系统平台上都可以运行。 原理是什么?只要在需要运行java应用程序的操作系统上,先安装一个java虚拟机(JVM Java Virtual Machine)即可。有JVM来负责java程序在该系统中的运行。 2.7配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\ProgramFiles\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\注意:在定义classpath环境变量时,需要注意的情况:如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;如果指定了classpath,那么会在指定的目录下查找要运行的类文件。但是是否还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在指定路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在指定的路径中没有找到运行的类,不会再当前目录找。一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。清空:set classpath= setclasspath=.;c:\ 表示当前路径和c盘下。 path与classpath的区别:path先在当前目录下查找,未找到后才在环境变量中查找。可执行文件用path;java的执行文件用classpath。 2.8注释 1.单行注释 // //后到本行结束的所有字符会被编译器忽略; 2.多行注释 /* */ /* */之间的所有字符会被编译器忽略 3.文档注释 /** */在/** */之间的所有字符会被编译器忽略,java特有的(用于生成文档)。注意:多行和文档注释都不能嵌套使用,但能嵌套使用单行注释。可用于调试程序。
写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1,2,3。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。第一次写的Hello World程序 /*需求:独立完成Hello World小程序的编写。思路: 1、根据需求整理思路 2、步骤:(根据思考步骤逐步完成代码) 1、定义一个HelloWorld类; 2、编写代码,包括主函数、输出语句; 3、保存成HelloWorld.java文件,注意后缀名为.java。 4、在dos命令行中通过编译工具Javac.exe编译;通过运行工具java.exe运行;显示结果为Hello World。 */ //关键字严格区分大小写 class HelloWorld//类名书写规范XxxYyyZzz,类名最好有意义,方便阅读 { public static void main(String[] args) //主程序入口 { System.out.println("Hello World");//输出语句 } }
二、java语言基础组成2.1关键字定义和特点:定义:被java赋予了特殊含义的单词。特点:关键字中所有字母都为小写。
用于定义数据类型的关键字
classinterfacebyteshortintlong
floatdoublecharboolenvoid
用于定义数据类型的关键字
turefalsenull
用于定义流程控制的关键字
ifelseswitchcasedefaultwhile
doforbreakcontinuereturn
用于定义访问权限修饰符的关键字
privateprotectedpublic
用于定义类、函数、变量修饰符的关键字
abstractfinalstaticsynchronized
用于定义类与类之间关系的关键字
extendsimplements
用于定义建立实例及引用实例、判断实例的关键字
newthissuperinstanceof
用于异常处理的关键字
trycatchfinallythrowthrows
用于包的关键字
packageimport
其他修饰符关键字
nativestrictfptransientvolatileassert
2.2标识符 可简单理解为在Java程序中为了增强阅读性自定义的名称。比如:类名,方法名,变量名等。命名规则:(1) 由字母、数字、下划线、$组成,不能以数字开头注意:此处的字母还可以是中文,日文等;(2) 大小写敏感(3) 不得使用java中的关键字和保留字(4) 别用Java API里面的类名作为自己的类名。Java中的名称规范:包名:多个单词组成是所有字母都小写。Xxxyyyzzz类名接口名:多个单词组成时,所有单词的首字母大写。XxxYyyZzz变量名和函数名:多个单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。xxxYyyZzz常量名:所有字母都大写。多个单词时每个单词用下划线连接。XXX_YYY_ZZZ2.3注释//单行注释 ; /**/多行注释; /***/文档注释(java特有)作用:注解程序;调试程序2.4常量和变量 2.4.1常量表示不能改变的数值。 Java中常量的分类: 1、整数常量:所有整数。 2、小数常量:所有小数。 3、布尔型常量:较为特有,只有两个数值,ture false。 4、字符常量:将一个数字字母或者符号用单引号(’’)标识。 5、字符串常量:将一个或者多个字符用双引号标识。 6、Null常量:只有一个数值就是null。对于整数:java有四种表现形式。二进制、十进制、八进制(012)、十六进制(0xff)。十进制――>二进制。对十进制数进行除2运算。二进制――>十进制。对二进制数乘以2其他进制转换。先转换成二进制然后再转成相应的进制数。八进制是3个二进制位代表一个八进制位。十六进制是4个二进制位代表一个十六进制位。负数的二进制表现形式:该数的二进制取反再+1。取反就是将二进制1变成0,0变成1。负数的二进制位的最高位是1。 2.4.2变量的概念:占据着内存中的某一个存储区域;该区域有自己的名称(变量名)和类型(数据类型);该区域的数据可以在同一类型范围内不断变化;为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用;使用变量注意:变量的作用范围, 初始化值定义变量的格式:数据类型变量名 = 初始化值;注:格式是固定的,记住格式,以不变应万变。作用范围:定义开始到定义它的代码块结束;同一范围内,不允许多个个局部变量命名冲突。什么时候定义变量?只要是数据不确定的时候,需要对数据进行存储时,就定义变量。 2.4.3数据类型: 1):基本数据类型:byte、short、int、long、float、double、char、boolean 2):引用数据类型: 数组、类、接口。







级别从低到高为:byte,short,char → int → long → float → double,其中byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。boolean 类型是不可以转换为其他基本数据类型。自动类型转换:从低级别到高级别,系统自动转的;强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;2.5运算符号: 1)、算术运算符。 +;-;*;/;% %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。-13%5=-3,13%-5=3,取模时结果的正负号看左边被模数。 +:连接符。“ha”+”ha”结果为:haha,字符串数据跟任何数据使用+号相连接,结果都会变成字符串。 ++;--:自增、自减。b=a++:b=a,a++。a先给b赋值后自增。b=++a:a++,b=a。a先自增后赋值给b。转义字符:通过\ 来转变后面字符或者符号的含义。 \n:换行; \b:退格;\r:按下回车键;\t:制表符。 Window系统中,回车符是由两个字符表示\r\n;linux系统中用\n表示,dos中能识别\n为回车符。一个汉字是两个字节(16个二进制位) ,而char类型也是两个字节 char ch=‘你’。 2)、赋值运算符。 =;+=;-=;*=;/=;%= 包含数据类型自动转换。 3)、比较运算符。 ==;!=;<;>;<=;>=;instanceof 特点:该运算符的特点是:运算完的结果,要么是true,要么是false。 4)、逻辑运算符。 &;|;^;!;&&;||逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。 &:只有两边都为true结果是true。否则就是false。 |:只要两边都为false结果是false,否则就是true ^:异或:和或有点不一样。两边结果一样,就为false。两边结果不一样,就为true. &和&&区别: &:无论左边结果是什么,右边都参与运算。 &&:短路与,如果左边为false,那么右边不参数与运算。 | 和|| 区别: |:两边都运算。 ||:短路或,如果左边为true,那么右边不参与运算。 5)、位运算符:用于操作二进制位的运算符。 <<左移;>>右移; >>>无符号右移;&与运算;|或运算;^异或运算;~反码反码就是二进制取反。注意:一个数异或一个数两次,值不变。7^4^4=7练习:对两个变量的数据进行互换。不需要第三方变量。 inta = 3,b = 5;-->b = 3,a = 5; a= a + b; a = 8; b= a - b; b = 3; a= a - b; a = 5; ―――――――――――――――――――― a= a ^ b;// b= a ^ b;//b =( a ^ b) ^ b = a a= a ^ b;//a = a ^ b ^ a = b;练习:高效的算出 2*8 = 2<<3; 6)、三元运算符:(条件表达式)?表达式1:表达式2如果条件为true,运算后的结果是表达式1;如果条件为false,运算后的结果是表达式2。2.6程序流程控制 2.6.1判断结构 If语句 if(条件表达式){执行语句;} if(条件表达式){执行语句;}else{执行语句;} if(条件表达式){执行语句;}else if(条件表达式){执行语句;}……else{执行语句;} 2.6.2选择结构 switch语句格式: switch(表达式)//接受的参数(byteshort int char) { case 表达式可能的结果值1:执行语句; break; case 表达式可能的结果值2:执行语句; break; ... default:执行语句; break;//最后这个一般不写 }备注: case之间与default没有顺序。先执行第一个case,都没有匹配的case值执行default。结束switch语句的两种情况:遇到break,switch语句执行结束。如果匹配的case或者default没有对应的break,那么程序会从第一次匹配的case语句开始继续向下执行,运行可以执行的语句,直到遇到break或者switch结束为止。总结if和switch语句很像。具体什么场景下,应用哪个语句呢?如果判断的具体数值不多,而是符合byte short int char这四种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。 2.6.3循环结构代表语句:while ; do while ; for while语句格式: while(条件表达式值为true) {执行语句; } do while语句格式: do {执行语句; } while(条件表达式值为true); while与do while的区别: while:先判断条件,只有条件满足才执行循环体。 do while:先执行循环体,在判断条件,条件满足,再继续执行循环体。简单一句话:do while:无论条件是否满足,循环体至少执行一次。注意:循环里的条件表达式不能直接写false或直接写结果是false的表达式,不过可以使用变量来传递false值 for语句: for(初始化表达式;循环条件表达式;循环后的操作表达式) {执行语句; } 1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效。 for语句执行完毕。该变量在内存中被释放。 2,for和while可以进行互换。如果需要定义循环增量。用for更为合适。总结:什么时候使用循环结构?当要对某些语句执行很多次时,就使用循环结构。无限循环的最简单表现形式。 for(;;){} //条件表达式默认是true。 while(true){} 2.6.4其他流程控制语句 Break语句:应用范围:选择结构(switch)和循环结构。 Continue语句:应用于循环结构。注:a、这两个语句离开应用范围,存在是没有意义的。 b、这两个语句单独存在时,后面不可以有语句,因为执行不到。 c、continue语句是结束本次循环继续下次循环。 d、标号的出现,可以让这两个语句作用于指定的范围。2.7函数 2.7.1函数的定义什么是函数?函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。函数的格式:修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,…){执行语句;return 返回值;}返回值类型:函数运行后的结果的数据类型。类型参数:是形式参数的数据类型。形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。实际参数:传递给形式参数的具体数值。 Return:用于结束函数。返回值:该值回返回给调用者。当函数没有具体的返回值时,返回的返回值类型用void关键字表示。如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。 return的作用:结束函数。结束功能。 2.7.2函数的特点定义函数可以将功能代码进行封装。便于对该功能进行复用。函数只有被调用才会被执行。函数的出现提高了代码的复用性。对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。注意:函数中只能调用函数,不可以在函数内部定义函数。定义函数时,函数的结果应该返回给调用者,交由调用者处理。 2.7.3函数的应用两个明确明确要定义的功能最后的结果是什么?这是明确返回值类型。明确在定义该功能的过程中,是否需要未知内容参与运算。这是明确参数。函数的作用: 1)、用于定义功能。 2)、用于封装代码提高代码的复用性。注意:函数中只能调用函数,不能定义函数。 2.7.4函数的重载:重载的定义是:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型或参数顺序不同即可。特点:与返回值类型无关,只看参数列表。好处:方便于阅读,优化了程序设计。本文出自 “离歌丶D” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: