黑马程序员技术交流社区

标题: java总结之基本语法&函数,快来补充和完善吧! [打印本页]

作者: 歌癫    时间: 2014-5-4 15:02
标题: java总结之基本语法&函数,快来补充和完善吧!
本帖最后由 歌癫 于 2014-5-4 15:11 编辑

Java 基本语法及函数
一、Java 前奏
java 是一门计算机编程语言,是众多编程语言之一,是一种解决相关需求问题的一个工具。旨在解决日常社会生活中的相关问题,使得我们的生活或工作方式更方便更快捷。

1,面对一个问题,首先要明确需求。我要做什么?
2,然后要分析思路。我要怎么做?1,2,3...
3,再次要确定步骤。每一个思路部分用到哪些语句,方法以及对象。
4,代码实现。用具体的java语言代码把思路体现出来。

IT行业的发展迅猛,技术更新很快,你的学习能力决定了你以后发展的高度,如何学习一门新的技术?
1,要知道该技术是什么;——百度一下
2,要知道该技术有什么用处及特点;——查文档
3,要知道该技术怎么用;——hello world
4,要知道该技术在什么情况下使用;——Test

二、Java 概述

1、历史与发展
SUNStandord University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。它也是一种面向 Internet 的编程语言。随着 Java 技术在 web 方面的不断成熟,已经成为 Web 应用程序的首选开发语言。
它简单易学、完全面向对象、安全可靠、与平台无关的编程语言。
2、技术架构
J2EEJava 2 Platform Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案;该技术体系中包含的技术如 ServletJsp 等,主要针对于 Web 应用程序开发。
J2SEJava 2 Platform Standard Edition)标准版
是为开发普通桌面和商务应用程序提供的解决方案;该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。比如 Java 版的扫雷
J2MEJava 2 Platform Micro Edition)小型版
是为开发电子消费产品和嵌入式设备提供的解决方案;该技术体系主要应用于小型电子消费类产品。比如手机中的应用程序等。
Java5.0 版本以后,更名为 JAVAEE  JAVASE  JAVAME
3、java 语言的特性——夸平台性
跨平台性:即使用 Java 语言编写的应用程序在不同的系统平台上都可以运行;
原理:在需要运行 java 应用程序的操作系统上,先安装一个 Java 虚拟机(JVM  Java Virtual  Machine)即可。由 JVM 来负责 Java 程序在该系统中的运行。不同的操作系统安装不同系统的虚拟机。
4、环境的搭建
① 下载并安装JDKJDKJava Development Kit的缩写,是java的开发和运行环境;JRE:Java Runtime Environment是JRE的缩写,是java的运行环境,JDK中就包含了JRE。JRE包含java运行时所需要的类库和JVM(java虚拟机)。
② javac 和 java 命令
javac:是负责编译的,当执行javac命令时,会启动java的编译器程序。对指定扩展名为.java的文件进行编译。 生成了jvm可以识别的字节码文件,class文件,也就是java的运行程序。
            java:是负责运行的,会启动jvm.来加载运行时所需的类库,并对class文件进行执行.
一个文件要被执行,必须要有一个执行的入口或起始点,这个程序的入口就是main函数.
5、环境变量的配置
① 永久配置方式:我的电脑—>属性—>高级—>环境变量—>path 环境变量最前面加上JDK的安装路径,
           如:JAVA_HOME=%安装路径%\Java\jdk
                                  path=%JAVA_HOME%\bin
       临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin
特点:系统默认先去当前路径下找要执行的程序,如果没有,再去找path中设置的路径。
② classpath 的配置:
永久配置方式:classpath=.;c:\;e:\
            临时配置方式:set classpath=.;c:\;e:\
classpath注意:如果没有定义环境变量classpath,则java启动jvm后,会在当前目录下要运行的类文件;如果指定了classpath,那么就会在指定的目录下查找需要运行的class文件。
一般在配置classpath时,值得末尾处不加分号,这样java虚拟机在指定目录下没有找到相应的类文件时,就会报错,方便调试程序。

















作者: 歌癫    时间: 2014-5-4 15:06
本帖最后由 歌癫 于 2014-5-4 15:15 编辑

三、Java 基本语法

1、关键字:就是被java赋予了特殊含义的单词;关键字中所有字母都为小写。
2、标识符:就是在程序中自定义的一些名词;如:类名、变量名、函数名等;
a) 由a-z A-Z 0-9 $_这些字母、数字、字符组成;区分大小写;
b) 定义标识符时:数字不可以开头;不可以使用关键字;
c) 在命名时,为了提高阅读性,要尽量有意义;
d) java中的名称规范:
①包名:多单词组成时,所有字母都小写;(xxxyyyzzz
②类名,接口名:多单词组成时,所有单词的首字母大写;(XxxYyyZzz
③变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写;(xxxYyyZzz
④常量名:所有字母都大写,多单词时,每个单词用下划线连接;(XXX_YYY_ZZZ
3、注释:有单行注释、多行注释、文档注释(java中独有的注释方式)三种
a) 单行注释 //注释内容        ;多行注释 /*注释内容*/        ;文档注释 /**注释内容*/
b) 注释的好处:用于注解说明解释程序的文字,提高阅读性;也可用于调试程序;
c) 注释的意义:
① 对于单行注释和多行注释,被注释的文字,不会被JVM解释执行;
       ② 对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的javadoc工具所解析,生成一套以网页文件形式体现的该程序的说明文档;
               ③ 注释是一个程序员必须要具有的良好编程习惯;初学者编写程序可以养成:先写注释再写代码的习惯;代码仅仅是思想的一种体现形式,将自己的思想通过注释先整理出来,再用代码来实现;

4、常量:是指在程序中不会改变的数值;
a) Java中常量分类:
i. 整数常量——所有整数
ii. 小数常量——所有小数
iii. 布尔型常量——只有truefalse两个值
iv. 字符常量——将一个数字、字母或符号用单引号引起来,做标识
v. 字符串常量——将一个或多个字符用双引号标识
vi. Null常量——只有一个值null
Bjava中整型常量有三种表现形式:
①十进制        ②八进制        ③十六进制
5、变量:就是内存中的一个存储区域,存储不确定的常量数据;
a) 作用:方便于运算,因为有些数据不确定。所以明确该数据的名称和存储空间。
b) 特点:可以重复使用;
c) 如何开辟内存空间?数据类型 变量名 = 初始化值;明确数据类型、变量名和初始数据;
d) 变量的作用范围和生命周期:
i. 作用范围:从变量定义的位置开始,到该变量所在的那对大括号结束;
ii. 生命周期:变量从定义的位置开始就已经存在内存空间中,在到达它所在的那对大括号结束,就会在内存空间消失。
6、数据类型:java是强类型语言,对每一中数据都定义了明确的数据类型,在内存中分配        了不同大小的内存空间。
a) 基本数据类型:
i. 整数类型:byteshortint(默认)long
ii. 浮点类型:floatdouble(默认)
iii. 字符类型:char
iv. 布尔类型:boolean
b) 引用数据类型:类(class)、接口(interface)、数组([ ]
c级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
自动类型转换(隐式类型转换):从低级别到高级别,系统自动转换的;
强制类型转换(显示类型转换):什么情况下使用?把一个高级别的数赋给一个比该数级别低的变量;
7、运算符:
a) 算术运算符:+ - * / %(取余)   %:任何整数模2不是0就是1
b) 赋值运算符:=  += -= *= /= %=
c) 比较运算符:特点是运算完的结果是true 或者 false
d) 逻辑运算符:&  |  ^  !   &&   ||
① 逻辑运算符除了 !  外都是用于连接两个boolean类型表达式。
② &: 只有两边都为true结果是true。否则就是false。
③ |:只要两边都为false结果是false,否则就是true
④ ^:异或:和或有点不一样。两边结果一样,就为false;两边结果不一样,就为true.
⑤ & 和 &&区别: & :无论左边结果是什么,右边都参与运算。
                              &&:短路与,如果左边为false,那么右边不参数与运算。
⑥ | 和|| 区别:|:两边都运算。
                       ||:短路或,如果左边为true,那么右边不参与运算。
e) 位运算符:直接对二进制位进行操作的运算符
① &  |  ^<<   >>   >>>(无符号右移)
② 例1:对两个变量的数据进行互换。不需要第三方变量。
                      int a  = 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:高效的算出 2*8 = 2<<3;
---> 一个数异或同一个数两次,结果还是那个数。(应用于加解密)
f) 三元运算符:格式:(条件表达式)?表达式1:表达式2;
i. 如果条件为true,运算后的结果是表达式1;
ii. 如果条件为false,运算后的结果是执行表达式2;

作者: 歌癫    时间: 2014-5-4 15:10
四、java 基本语句
1、判断结构: (条件表达式)?表达式1:表达式2
2、选择结构:
if(表达式){执行语句}
if(表达式){执行语句}else{执行语句}
if(表达式){执行语句}else if(表达式){执行语句}else{执行语句}
Switch(int/short/char/byte){
Case:1
执行语句
Case:2
执行语句
Default:
执行语句
}
① if 和 switch 有什么区别?什么时候用哪个?
如果判断的具体数值不多,而且符合byte short char int这四种类型,虽然两个语句都可以用,但是建议使用switch,因为效率稍高一点。
如果对区间判断,或是对结果是boolean类型判断,则使用if,if的使用范围广
3、循环结构
a) For(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句}
b) Do{执行语句}while(条件表达式)——特点:无论是否满足条件,循环体至少执行一次
c) While(条件表达式){执行语句}
d) While和for可以互换,如果是只需定义循环增量,则用for更好,缩短变量的生命周期。
e) 当某些语句需要执行很多次时,就要用循环结构。
f) Break:
作用于switch ,和循环语句,用于跳出,或者称为结束。
当break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号;
g) continue:只作用于循环结构,表示继续当前循环。
结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。
4、函数(方法):是指定义在类中的具有特定功能的一段独立小程序;
① 格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2...){
执行语句;
Return 返回值;
}
返回值类型:函数运行后结果的数据类型;
参数类型:是形式参数的数据类型;
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数;
实际参数:传递给形式参数的具体数值;
Return  :用于结束函数;
返回值  :该值会返回给调用者;
② 函数特点:
A) 定义函数可将功能代码进行封装;
B) 便于对该功能进行复用;
C) 函数只有被调用才会执行;
D) 函数的定义提高了代码的复用性;
E)当函数没有具体的返回值时,返回的返回值类型用void关键字表示。如果函数                的返回值类型是void时,return语句可以省略不写的;
③ 注意:
A)函数中只能调用函数,不可以在函数内部定义函数;
B)定义函数时,函数的结果应返回给调用者,交由调用者进行处理;
④ 如何定义一个函数?
A)明确要定义的功能最后的结果是什么,即明确返回值类型;
B)明确定义功能时,是否需要未知内容参与运算,即明确参数列表;
⑤ 函数的重载:同一个类中,允许存在一个以上的同名函数,只要他们的参数类型或                        参数个数不同就可以,和返回值类型无关。优化了程序设计,便于阅读。
5、数组:同一种数据类型的集合。也就是存储相同数据类型的一个容器;
a) 好处:可以自动的给数组中的元素从0开始编号,方便操作这些元素。
b) 定义数组的格式:
i. 元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
例:int[] arr = new int[9];
ii. 元素类型[] 数组名 = new 元素类型[]{元素,元素,元素......};
例:int[] arr = new int[]{1,2,3,4,5,9};
元素类型[] 数组名 = {元素,元素,元素......};
例:int[] arr = {1,2,3,4,5,9};
c) 数组的内存分配及特点:
djava程序的运行,需要在内存中开辟空间,根据需要的不同划分了5块区域:
① 栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。
② 堆内存:用于存储数组和对象,通过new关键字建立的实例对象都放在堆内存中。每一个实体都有内存地址值;实体中的变量都有默认初始化值;当实体不再被使用时,会在不确定的时间内被垃圾回收器(机制)回收。
③寄存器区
④本地方法区
⑤方法区
E)数组的应用:
①查找(二分查找又叫折半查找)、排序、遍历
例://二分查找法。必须有前提:数组中的元素要有序。
                public static int halfSeach_2(int[] arr,int key){
                        int min,max,mid;
                        min = 0;
                        max = arr.length-1;
                        mid = (max+min)>>1; //(max+min)/2;
                        while(arr[mid]!=key){
                                if(key>arr[mid]){
                                        min = mid + 1;
                                }
                                else if(key<arr[mid])
                                        max = mid - 1;
                                if(max<min)
                                        return -1;
                                mid = (max+min)>>1;       
                        }
                        return mid;
                }
②二维数组:
格式1int[][] arr = new int[3][2];
格式2int[][] arr = new int[3][];

作者: czwanglei    时间: 2014-5-4 15:23
歌癫 发表于 2014-5-4 15:10
四、java 基本语句 1、判断结构: (条件表达式)?表达式1:表达式22、选择结构:if(表达式){执行语句}if( ...

比较认真啊。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2