黑马程序员_Java初识

 
 
------------- android培训java培训、java博客、java学习型技术博客、期待与您交流! -------------

Java语言

SUN(Stanford University Network,斯坦福大学网络公司),1995年推出的一门高级编程语言。 Java语言的三种技术结构(Java5.0版本后) JAVAEE(Java Platform Enterprise Edition)企业版,开发企业环境下的应用程序,主要针对web。 JAVASE(Java Platform Standard Edition)标准版,完成桌面应用程序的开发,是其他两者的基础。 JAVAME(Java Platform Mico Edition)小型版,开发电子消费产品和嵌入式设备,如手机中的程序。 Java语言的最大特点 跨平台性 体现:通过Java语言编写的应用程序在不同的系统平台上都可以运行。 原理:Java有自己独立的能解析Java语言编写的class文件的虚拟机(Java Virtual Machine)      在不同平台下配备相应虚拟机来解析class文件从而实现跨平台操作。 Java语言的环境搭建 JRE(Java Runtime Environment)Java运行环境 内含JVM和Java程序所需的核心类库,如果欲运行一个开发好的Java程序,平台只需安装JRE。 JDK(Java Development Kit)Java开发工具包 内含JRE,还包括编译工具(javac.exe)和打包工具(jar.exe)。 配置环境变量 目的:在任意目录下可执行Java中bin目录下的工具。 原因:将该工具所在目录告诉系统,当使用该工具时,系统自动寻找指定目录。 方法:计算机属性->高级->环境变量->  将变量名path的变量值加上本机JDK文件夹中Bin文件夹的绝对路径,后面用";"隔开。 classpath的配置 目的:在任意目录下可以执行指定路径中的java类文件。 永久配置方式:新建环境变量 classpath=" ? ",将类文件路径输入。 临时配置:Dos命令行 set classpath=" ? "; 注意: 如果classpath的值结尾处有分号,若指定路径下无该类文件,则会默认在当前目录下再找一次 如果classpath的值结尾处无分号,且指定路径下无该类文件,则不会再当前目下找了。 Java语言的两个常用工具 javac:负责编译,执行javac,会启动java编译器,   对指定java文件(源文件)进行编译生成为JVM可以识别的字节码文件(.class),也叫做java的运行文件。 java:负责运行,  它会启动JVM加载运行时所需的类库,并对class文件进行执行,另该类文件的执行起始点为main函数。

Java基础

注释 用来解释程序的某些语句的作用和功能,提高代码阅读性,也可用来暂时屏蔽某些语句等。 单行注释,多行注释,文档注释。 关键字 Java中赋予了特殊含义的单词 标识符 程序中自定义的名称,如类名、变量名、函数名等。 由26个英文字母大小写、数字、0-9符号、$和_组成,另Unicode字符集也可以 规范书写 包名:多单词组成时所有字母都小写。 类名接口名:多单词组成时所有字母的首字母大写。 变量名和函数名:多单词组成时,第二个单词开始首字母大写。 常量名:所有字母都大写,多单词时用下划线连接。 注意 Java中严格区分大小写;数字不可以开头;不可以使用关键字。 数据类型 基本数据类型 数值型:整数类型(byte、short、int、long)分别占1、2、4、8个字节,另一个字节占8个二进制位,     浮点数类型(float、double)分别占4、8个字节。 字符型:char类型,占2个字节(1个中文字也是占两个字节)。     特殊字符:"\n" 换行符,"\r"回车键,"\t"制表符等,注:Dos里面"\n"换行,Windows里面"\r\n"换行。 布尔型,boolean类型,包括两个值true和false,占1个字节。 引用数据类型 类:class ;接口:interface ;数组:[]。 转型规则 Java中所有的数字变量都是有符号(正负)的,Java中不允许类型的随意转换,数字变量转换有以下几点注意 字节数小的数字型变量赋值给字节数大的类型,自动转换; 反过来,则需要强制类型转换; int和char类型转换,是根据Unicode码查找,且char是无符号的; 另,类类型涉及多态的时候也会出现类型转换。 常量 表示不能改变的数值 变量 目的:数据不确定,从而需要存储,然后重复使用或者更改等。 概念:内存中一个存储区域,它有自己的名称(变量名)和类型(数据类型),且可以在同一类型范围内不断变化。 格式:数据类型 变量名 = 初始化值; 注意:作用域(一对{}有效,即离开{}就会随之消失),初始化值。 运算符 算术运算符,+  —  *  /  ++  -- ; %,取模相当于取余数,任何整数模2不是1就是0,另负数只看被模数。模数正负不影响结果 赋值运算法,=  +=  -= *=  /=  %= ; 除=运算符外其他相当于将左右两边运算结果赋给左边,且含不同类型运算,会自动完成强转操作。 比较运算符,==  !=  >  <  >=  <=  instanceof(检测是否是该类对象) 运算完结果为boolean型。 逻辑运算符,&  |  ^  &&  ||  ! &:两边都为true结果才为true;&&:如果左边为false,那么右边就不运算。 |:两边都为false结果才为false;||:如果左边为true,那么右边不运算。 ^: 异或,两边一样为false,反之为true。 位运算符,用于操作二进制位的运算符,速度较快 <<:左移,将二进制位向左移动,右边缺的补上0,相当于乘以2的倍数; >>:右移,将二进制位向右移动,左边缺的视情况补上0或者1,相当于除以2的倍数; >>>:无符号右移,无论最高位是什么,右移后用0补; &:与运算, |:或运算, ^:异或运算,一个数异或同一个数两次结果任是这个数; ~:反码,对一个数取反。 三元运算符 (条件表达式)?表达式1:表达式2;表达式为true,结果为表达式1,反之为表达式2。注运算完必须要有结果。 语句 选择语句 if语句,三种格式,if(){}   ||  if(){} else{}   ||   if(){}else if(){}...else{} switch语句,格式,switch(表达式){case 1:执行语句;case 2:执行语句.....default:执行语句;} 特点: 表达式值只接收byte、short、int和char这四种类型,后续升级有增加了其它类型例如枚举; case之间与default没有顺序,先执行第一个case,没有匹配的case执行default; switch语句结束情况:1、遇到break,2、执行到switch语句结束; 如果匹配的case或者default没有对应的break,程序继续向下执行直至结束。 应用:对有具体数值且数值不多,用switch较高效,其他情况用if,如判断区间,boolean类型判断等 循环语句 while语句: 两种格式,定义初始化表达式; while(表达式){};       do{}while(表达式); do while特点是条件无论满不满足至少执行一次。 for语句:   for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句}              对于for语句需要注意:执行的依次顺序,条件表达式不是真就要是假否则编译失败, 两边表达式有多个用逗号隔开,表达式可以省略不写其条件表达式默认true。 应用: 如果变量仅仅用于控制循环次数作为循环增量存在用for更合适,因为循环语句结束,变量在内存中释放。 思想: 计数器思想和累加思想,通过变量记录每次变化结果或者记住数据的状态变化,再通过循环进行累加动作。 语句嵌套 语句中还有语句 循环嵌套(循环中还有循环),e.g:for中有for; 流程控制语句 break(跳出);用于选择结构和循环结构 continue(继续);只用于循环结构 注意: 这两个语句离开应用范围,存在是没有意义的 这两个语句单独存在下面都不可以有语句,因为执行不到 continue语句是结束本次循环继续下次循环 两个语句是作用于当前循环,加上标号,可以让两个作用于指定的范围,标号只能用于循环上,用于给循环起名字。 函数 概念:函数是定义在类中具有特定功能的一段独立小程序,也叫方法。 格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2....) { 执行语句; return 返回值; } 特点: 定义函数可以将功能代码进行封装,便于该功能进行复用和提高代码复用性; 函数只有被调用才会被执行,对于函数无具体返回值的,返回值类型可以使用void表示,return则可以省略; return的作用:结束函数,结束功能。 函数中只能调用函数,不能定义函数;函数的结果是返回调用者的,交由调用者处理。 应用: 1、明确函数功能,该功能运算结果是什么,即明确返回值类型 2、明确定义该功能的过程中是否需要未知的内容参与运算,即明确参数类型和参数个数 重载(overload) 定义:在同一个类中,允许存在一个以上的同名函数,只要它们参数个数或参数类型不同即可。 特点:与返回值类型无关,只看参数列表; 优点,方便阅读,优化设计。 内存结构 Stack(栈):  存放基本类型的数据和对象的引用,存放的都是局部变量, 不能存放java对象本身,该数据所在作用域运行结束,数据即释放。 Heap(堆):   存放所有new出来的对象,当没有引用指向数据时, 数组或对象就会变成垃圾,在随后一个不确定的时间被垃圾回收机制释放掉。 静态域:    存放静态成员(static定义的) Constant pool(常量池):存放字符串常量和基本类型常量(public static final), 常量池在运行时候会存储在MethodArea中 Registers(寄存器):  最快的存储区,由编译器根据需求进行分配,在程序中无法控制 成员变量与局部变量 成员变量就是方法外部,类的内部定义的变量;局部变量就是方法或语句块内部定义的变量,且必须初始化。 形式参数是局部变量,局部变量的数据存在于栈内存中,栈内存中的局部变量随着方法的消失而消失 成员变量存储在堆中的对象里面,有垃圾回收器负责回收释放。 数组 概念:同一种类型数据的集合,数组就是一个容器,数组中元素是从0开始编号,方便操作。 格式: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度]; 元素类型[] 数组名 = {元素1、....}; 元素类型[] 数组名 = new 元素类型[]{元素1、....}; e.g: 一维可以写成 int[] x   || int x[] 二维可以写成 int[][] y  ||  int y[][]  ||  int[] y[] 数组最常见操作,for循环,数组长度array.length; 习题: 选择排序和冒泡排序; 折半查找; 查表法的十进制转其它进制。
------------- android培训java培训、java博客、java学习型技术博客、期待与您交流! -------------
详情请查看:http://edu.csdn.net/heima/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值