ImageVerifierCode 换一换
格式:PPT , 页数:353 ,大小:1.82MB ,
资源ID:10458176      下载积分:25 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/10458176.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Java全部PPT课件.ppt)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Java全部PPT课件.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,core java,的课程体系,Java,语法基础,Java,面向对象的编程,Java,的高级编程接口:,4,个专题,Java,图形,GUI,编程,多线程编程,I/O,编程,网络编程,1,.,Java,语言的知识体系结构图,2,.,java,语法基础,Day01-Day03,3,.,Day01,了解,java,的产生与发展,理解,java,语言的特性,理解,java,虚拟机,jvm,的特性和功能,理解字节码和垃圾收集的概念,列举出在,java,平台上实现代码安全的方法,知道在,java,中定义类,包,

2、applets,和,applications,掌握编码,编译,运行,java,应用程序的步骤,安装,搭建,java,开发运行环境,第一个,java,程序,带包的,java,程序,JVM,搜索类的顺序和类加载,CLASSPATH,的应用,常用的,java,命令,4,.,Java,的产生与发展,Java,的产生,Sun,公司的,Green,项目,基于,c+,开发的,Oak,语言,Mosaic,和,Netscape,到,JavaHot,浏览器,Internet,的蓬勃发展推动了,java,的发展,(Applet),Java(,爪哇,),名字的由来,Java,的发展,Java,的现状,纯面向对象的语

3、言,平台无关性,一次编写,到处运行,适合于基于,Internet,应用程序开发,Java,的地位确立,IT,产业很多大公司购买了,java,的许可证,众多软件开发商已支持,java,软件产品,Intranet,是企业信息系统最佳的解决方案,,java,发挥了不可替代的作用,Java,的发展与其分支,95.5.23 Oak,改名为,java,98.12.java1.2,,后来改名为,java2,陆续出现了,java1.3,java1.4,2004.12 java1.5,版本推出 命名为,java5.0,后来陆续出现,java6.0,java7.0,5,.,Java,的产生与发展,Java,的发展

4、与其分支,java,在今天已形成了庞大的体系,经过十年发展,已有了,3,个平台标准,三大技术平台都提供了相应的开发工具包,(,SDK,:SoftWare Development Kits),java SE-,标准版应用平台,java EE-,企业级应用平台,java ME,微型版应用平台:应用在存储,运算很小的受限的平台,6,.,Java,语言的特性,什么是,java?,程序设计语言;开发环境;应用环境;部署环境,Java,的特性,提供更简单的方式写程序,无指针,无需做内存管理,提供庞大的类库,纯粹面向对象设计,支持静态和动态的代码继承和重用,提供一个可解释执行的环境,支持任何开发平台,只写一

5、次,到处使用,支持多线程,支持动态升级,以上特性如何实现,Java,虚拟机:,JVM,垃圾收集:,Garbage Collection,代码安全:,Code Security,字节码文件:,Verifying,7,.,Java,语言的特性,JVM,与跨平台性,:,一次编写,到处运行:不同操作系统,不同数据库,不同的服务器,数据类型也可以实现跨平台,Java,虚拟机的作用,程序的开发及运行方式,Java,的工作方式:先编译后解释,Java,是先编译后解释执行,8,.,CPU,Java,语言的特性,Java,源文件先通过编译生成一个字节码文件,bytecode,字节码不与当前,OS,相关,结构中立

6、的,是二进制文件。任何平台编译生成的字节码都是一样的。,字节码文件不能直接执行,必须需要,JVM,的支撑才能运行,JVM,是,sun,开发的,字节码的结构也是,sun,定义的,他们之间有很好的接口,JVM,存在的意义实际上就是屏蔽掉底层平台的差异,为上层结构中立的字节码统一运行的环境,而,JVM,会将字节码转化成相应的底层平台的机器码执行,java,解释器功能是用,JVM,来实现的,,java,的解释器是在,jvm,中运行的,JVM,的作用:,对下是屏蔽掉了底层平台的差异,对于上层的字节码而言不需要关心它运行在什么平台上,由,JVM,去把底层平台的差异屏蔽掉,对上为结构中立的字节码提供了统一的

7、运行环境,实现了字节码的跨平台,JVM,Bytecode,9,.,Java,语言的特性,Java,的垃圾收集器,Java,的垃圾收集解除了程序员分配存储器的责任,它提供了一种系统级线程以便跟踪每一存储器的分配情况。在,Java,虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器。,内存泄漏,垃圾收集线程,垃圾收集调用的方法:,java.lang.System.gc()/java.lang.Runtime.gc(),Java,代码的安全性,10,.,Java,语言的特性,字节码的作用,字节码的结构是,JVM,特定指定的,字节码不会破坏,篡改系统,禁止运行时堆栈溢出 防止蠕虫病毒袭击,参

8、数类型正确,类型转换正确,安装,搭建,java,开发运行环境,官方网站下载,JDK,官方网站:,不同系统平台,,JDK,不一样,选择适合于自己平台的,JDK,JDK,的安装,Windows,直接安装运行,jdk,的可执行,exe,文件,Linux,系统将,JDK,文件压缩包解压后放入,opt,目录,配置初始化文件的环境变量,Windows,下,JDK,安装后,会有,2,个文件夹生成,JDK,:,java,开发工具软件包,它包含了,java,的编译,调试,运行整个环境和包含了整个类库的软件包,JRE,:,java,运行环境,JDK,JRE,和,JVM,11,.,安装,搭建,java,开发运行环境

9、JDK,,,JRE,和,JVM,jre,是,jdk,的子集,在一套完整的,jdk,中就包含了,jre,jre,只负责运行一个编译好的,java,程序(字节码文件,bytecode,),jdk,它可以去编译,调试,运行整个操作过程都支持,在,jre,内部有一个软件组件,jvm,就是,java,虚拟机,JDK,的结构简介,bin,目录:,java,开发调试的命令,exe,文件,连接库文件,编译器等等,编译一个,java,文件:,javac,;运行一个字节码文件:,java,jre,目录:,jdk,中自带的,jre,src,压缩文件:放置的是,jdk,类库的源码文件,按包结构组织的,demo:,:

10、java,代码的演示实例文件,include,:用于编译本地方法的文件,docs,:,html,格式的类库文档,lib,:类库文件,Java,程序开发环境配置,在,windows,平台:,autoexec.bat,文件;使用对话框,(,右击我的电脑属性高级环境变量系统或用户的环境变量,),操作,Unix,平台需要分,shell,:,csh$HOME/.cshrc bsh/ksh$HOME/.profile,环境变量:,JAVA_HOME,:保存,jdk,的安装目录,windows:set JAVA_HOME=c:programfilesjavajdk1.5.0_09,12,.,Java,程序

11、开发环境配置,csh:setenv JAVA_HOME /opt/jdk1.5.0_09,bsh/ksh:JAVA_HOME=/opt/jdk1.5.0_09,CLASSPATH,:系统搜索字节码(类文件,.class,)文件的搜索路径。设置系统在查找字节码文件时,它的搜索路径。,windows:set CLASSPATH=.;%JAVA_HOME%jrelibrt.jar;,csh:setenv CLASSPATH .:$JAVA_HOME/jre/lib/rt.jar,bsh/ksh:CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar,PATH,:设置命令的搜索路径

12、在执行命令时,操作系统就会在,PATH,设置的路径去查找命令的可执行文件。,设置,path,不能覆盖原有的,可以使用特殊符号,windows,:,%PATH%;Linux,:,$PATH:,windows:set PATH=%PATH%;%JAVA_HOME%bin;,csh:setenv PATH$PATH:$JAVA_HOME/bin,bsh/ksh:PATH=$PATH:$JAVA_HOME/bin,Linux,系统使用,bsh/ksh,时则需要,export JAVA_HOME CLASSPATH PATH,将环境变量设置为全局的,编辑,编译,调试,运行一个,java,程序,写第一个

13、java,程序:,HelloWorld.java,public class HelloWorld,public static void main(String args),String str=“Hello World!”;,13,.,编辑,编译,调试,运行一个,java,程序,System.out.println(“The String is:,:”,+str);,System.out.println(MyAge is:+age);,通过这个程序掌握以下概念,一个,java,源文件中可以定义多个类,但最多只能有一个类用,public,来修饰,而且该,public,修饰的类名要与,java,

14、源文件名一样。,一个,java,应用程序应该包含一个主方法,而且主方法的签名是固定不变的。主方法定义在哪个类中并不做固定安排。,定义的所有的代码中,只看到类的定义。在类中去封装其他变量或方法。,编译,HelloWorld.java,程序,开始,运行,cmd,进入,dos,修改当前目录为,d:javacodeday01,使用,javac HelloWorld.java,命令编译,编译成功后,到,day01,程序目录下查看,发现有,2,个,.class,文件得出有效结论,编译报错则根据错误提示找出错误位置然后修改程序重新编译,举例来演示学习错误提示,假如将,String,的,S,写为小写 :,st

15、ring str=“HelloWorld!;,假如将,out,写为,out,:,System.otu.println(“The String is:+str);,再次编译一下,查看错误提示,必须要会读错误提示,分析错误提示,排除错误是基本的能力,14,.,包的概念,含义和使用,运行,HelloWorld,程序:,包含有主方法的程序才可以运行,没有包含主方法的类是不能运行的,开始,运行,cmd,进入,dos;,使用,cd d:javacodeday01,进入程序目录,使用,java HelloWorld(,包含有主方法的类的类名,),来运行,使用,java Student,就会报告错误提示没有主

16、方法,要求学员做,HelloWorld,程序并操作演示几种错误情况和调错,带包的,java,程序,包的声明:,package day01 package,是关键字,day01,是包名,包的概念和含义,包名的命名符合标识符命名规则即可,企业项目开发中,包的命名也有企业规范的如:,com.shunshi.abs.model,.,来隔开每一部分,每一部分都是包结构,com.shunshi,这个是软件公司网址的,url,,可以区分确认哪个公司开发的软件产品,com.sun/com.ibm,,这样包名不会产生冲突,abs,是项目名,,model,是项目中的模块,/,子模块名,写,MySecondJava

17、java,程序,使用包结构,package com.shunshi.corejava.day01,使用包后,如何编译,写,MySecondJava.java,,使用包声明:,package corejava.day01;,编译程序:,javac d .MySecondJava.java,15,.,JVM,搜索类的顺序与类加载,-d,选项的作用:,把编译好的字节码放在你指定的目录下,所以需要指定目录,如果源文件声明了包结构,那么在给定的目录位置下会按照包结构自动创建目录结构,编译好的字节码文件是放在最终的子目录下,为什么使用包?,企业项目开发中方便管理不同的类,用包来分门别类地组织不同模块功能

18、的类,使用包的好处:举例:航班机票预定项目,JVM,搜索类的顺序与类加载,使用包结构编译后,如何运行?,使用,java,,注意:,java corejava.day01.MySecondJava,如何运行?类加载,演示错误情况的发生,直接使用,java MySecondJava,则报告找不到这个类的定义的错误提示,为什么找不到?从系统如何去找类来说,与,jvm,在查找类时的搜索顺序有关系,直接进入包结构目录,cd corejavaday01,使用,java MySecondJava,运行,则报告找不到类的定义同时给出错误原因(找到的类与要运行的类不一致),16,.,Java,常用命令,为什么不

19、一致呢?找到的是带包的,运行的是不带包的,CLASSPATH,的应用,深刻理解,java,技术体系,如何使用第三方的,java,技术,常用命令,javac,选项 源文件名 编译,java,源文件,-d,查看,javac,命令到底有哪些选项,直接使用,javac/javac-help,命令回车,java,选项 类名,参数,运行,java,程序,jdb,选项 类名,参数,进行,debug,调试的命令,javadoc,选项 包名 源文件名 生成,jdk,的,api,形式的程序文档,在,java,源文件中允许使用文档形式的注释,单行注释,/,注释内容,多行注释,/*,注释内容*,/,多行注释不能嵌套,

20、但可以嵌套单行注释,文档注释,/*,注释内容*,/,出现在类的定义,方法的定义,属性的定义之前,用来说明类的含义,方法的含义,属性的含义,使用,javadoc,命令给,MySecondJava.java,生成文档注释,在,MySecondJava.java,中,类前,主方法前写一些文档注释,使用,javadoc,命令将文件,MySecondJava.java,中的文档注释抽取出来生成程序文档。,javadoc d.doc MySecondJava.java,17,.,Java,常用命令,分析程序文档结构和理解,jdk,的,API,文档,jar ctxuvfm0Mi jar-file manif

21、est-file-C directory files,创建,/,展开,/,更新一个,jar,文件,jar,文件:,sun,公司定义的一种文件格式,与,zip,格式相同,可以用普通的解压缩工具解开。,jar,文件压缩的一般是,java,的字节码文件,按照包结构组织好的,.class,文件。,创建,jar,文件,:,将,d:corejavaday01,中的,1,个,.class,文件打包成一个,jar,文件,jar -cvf first.jar .corejava,不与源文件放在一起,c,代表创建,jar,文件,v,是可视化即可以看见创建过程和创建详细清单,f,代表可在后面指定,jar,文件名,解

22、压生成后,jar,文件,有,corejava,和,META-INF2,个文件夹,jar,文件有什么作用?,将开发的类打包,jar,文件给客户,客户得到后只需要设置,classpath,后就可以用了,开发一个中间件,将中间件的程序打包成,jar,打包,day01.jar,(,corejavaday01,中的,.class,)给第三个程序,MyThirdJava,使用。,写,MyThirdJava.java,程序,18,.,Jar,文件和,import,的使用,将,day01.jar,路径设置给,CLASSPATH,将,day01,包下的,MySecondJava.class,移走,将,javac

23、odeday01,下的,MySecondJava.java,移走,编译运行,MyThirdJava,来演示自定义,jar,文件的使用,思考问题,找不到,MySecondJava,,没有给包结构名,修改为,corejava.day01.MySecondJava msj=new corejava.day01.MySecondJava();,String,的使用不需要,rt.jar,路径给,CLASSPATH,,也不需要使用包结构名,+,类名,因为它是,lang,包下的类,若在,MyThirdJava.java,中自定义一个,String class String,则会报错,与,JVM,搜索类的顺序

24、有关,先搜索当前包下的,String,,它无构造方法,简便引入某包下的类,直接使用包名,+,类名的形式,程序太烦琐了,在程序的开头使用,import,包结构名,.,类名,来引入使用的类,要引入某包下的所有类则,import,包结构名,.*;,19,.,JDK,的常用包,java.lang,:,JAVA,语言包,核心的类和接口,无需导入可直接使用。如,String,、,Math,、,Integer,和,Thread,。,java.awt/javax.swing/java.awt.event,:做,java,的图形开发使用的包,包含有图形组件,用来构建和管理应用程序的图形用户界面。,java.ap

25、plet,:用来开发,java,小程序的类和接口,包含了可执行,applet,特殊行为的类。,java.io,:包含了,java,所有做输入输出的类和接口,包含处理,I/O,文件的类,:用来做网络开发的类和接口,java.util,:,java,工具包,包含,java,开发常用的工具类,,java,的时间日期,,java,的数据结构,随机数发生等。,20,.,知道,java,的特殊符号,熟悉,java,的标识符,掌握,java,的关键字的使用,理解,java,各数据类型的存储和使用,原始数据类型,基本数据类型的转换,定义类,对象,成员变量和引用变量,类的声明,类变量与类成员变量,创建类的对象实

26、例和使用默认值,描述引用变量与类对象的关系,掌握表达式和运算符的使用,Day02,21,.,Java,中的特殊符号,注释,单行注释:,/,多行注释:,/*.*/,这两种注释只能通过打开源文件来查看,写程序一定要写注释。注释与程序应是,2:1,多行注释:,/*/,这个注释可以不打开源文件来查看,,java,中有一个,javadoc,工具,它的作用是将源文件中的,/*.*/,注释单独抽出来放在另一个文件中。,例如:,javadoc d .Hello.java,执行后,会在当前目录下生成一个,doc,目录,里面文件就可查看注释了。,其他符号,;,一个语句的结束,一个语句块,空白字符 空格,,tab,

27、回车,换行等,22,.,Java,标识符,标识符:程序中的组件名字,包括类名,方法的参数名,变量名,方法名,包名等,定义标识符的规则:,以,_,$,字母开头;,只含有,_,$,字母,数字,;,没有长度限制,不能有空格;,不能使用,java,的关键字或保留字,大小写敏感,例如:,_abc,$ABC,2A,A#,For,顺时,Java,开发的命名习惯,所有的命名要望文生义,这样才具有良好的可读性,Total,,,Sum,,,ShunshiStudent,,,类名,接口名:每个单词的首字母大写,其他字母小写 如类,MyFirstJava,,,Player,,,Teacher,属性,方法,,局部变量名

28、第一个单词全小写,从第二个单词开始以后每个单词首字母大写,其他字母小写 如方法,getName()setDoctorBirthday(),常量:每个单词所有字母全部大写,单词之间用,_,来连接,java,中使用,final,修饰,final int MARK_GREED=22;,包名:所有字母全部小写 如,package com.shunshi.corejava.day01,23,.,Java,关键字,关键字:对,Java,技术编译器有特殊的含义,可以被编译器识别执行,abstract do implements private throw boolean double import pro

29、tected throws,break else instanceof public transient byte extends int return true,case false interface short try catch final long static void,char finally native super volatile class float new switch while,continue for null synchronized default if package this,Java,关键字特点,java,关键字与,c+,很多相似,只要与,c+,一样的

30、它的含义都与,c+,中的相同,有些关键字,c+,有,而,java,没有,sizeof,求出某种类型的变量的占内存的大小,为什么,c+,有,sizeof,?,因为不同机器内存占用空间大小不一样,16,,,32,,,64,位,取决于操作系统平台。,为什么,Java,不需要?,因为有,JVM,。,java,中的关键字都是小写的,true,、,false,和,null,为小写,而不是象在,C+,语言中那样为大写。严格地讲,它们不是关键字。,24,.,Java,关键字,有些关键字,java,没有取消保留下来,但它自己也不用它也不给程序员用,goto,和,const,不是,Java,编程语言中使用的关键

31、字,而是保留字。,什么是保留字?,为什么保留下来但不能用,?,在,java,中,final,替代,const,goto,在,c+,代表无条件跳转,功能很好,但不能经常用,要谨慎。,很多建议去掉,goto,关键字,没有理解,goto,真正含义。,为什么,c+,到现在都没有删除掉,goto?,它有一个特殊使命,Java,中使用,break,代替,goto,跳出一层循环:,break,跳出多层循环:,break out,out,是一个标号,可以跳到,out,标识处,break,避免滥用,goto,,把,goto,功能削弱了,只能跳到外层循环,java,中加入新的关键字,enum assert,enu

32、m,:枚举,assert,:断言,25,.,Java,的原始数据类型,boolean true/false,byte 8,位整型,1,个字节,short 16,位整型,2,个字节,int 32,位整型,4,个字节,long 64,位整型,8,个字节,char 16,位,unicode,字符,2,个字节,double 64,位浮点数字型,8,个字节,float 32,位浮点数字型,4,个字节,26,.,boolean,类型,Java,中定义,boolean,类型,boolean b=true;,Java,中的,boolean,类型的取值只能是,true,false,Java,中的,boolean

33、类型不能与,int,通用,而在,c+,中可以,C+,中,0,代表,false,非,0,代表,true,boolean,与,int,通用好还是不好呢?不好,举例说明,c+,中的,boolean,与,int,通用,int a=1;,if(0a2)coutaendl;,27,.,Integer,数据类型,byte,short,int,long,Java,中的,4,种整型类型,Integer,byte:1,个字节,128(-2,7,)-127(2,7,-1),short:2,个字节,32768(-2,15,)-32767(2,15,-1),int:4,个字节,2147483648(-2,31,)-2

34、147483647(-2,31,-1),long:8,个字节,2,63,-2,63,-1,Java,的不同整型占用内存空间的大小不一样,Java,中整型的存储规则与,c+,一样,但,java,整型没有无符号和有符号的区分,这与,c+,不一样。,Java,中所有整型都是有符号的,这样就可以求出每个整型能表示的范围。,以,byte,为例说明,Byte,是,8,位整型,1,个字节 最多可表示,2,8,=256,个数 从,(-2,7,)-128,到,127(2,7,-1),为什么是,-128-127,而不是,-127-128,呢?与整型数据在内存的存储规则有关,整型数据在内存空间中的存储方式,正整数(

35、最高位为,0,)在内存中是存储原码,负整数(最高位为,1,)在内存中是存储其补码 补码是不考虑符号情况下原码取反后末位加,1,。以,-5,来分析补码,分析一些特殊数字:,8,位全为,1,则是数字,-1,,,8,位全为,0,则是数字,0,不考虑符号位最大的数是,01111111,表示数字,127,,最小的数,10000000,表示数字,-128,28,.,Integer,数据类型在内存的存储方式,为什么用补码存储负数?方便二进制计算,例如,-128+127=-1,其他类型的整型在内存的存储方式与,byte,相同,只是空间更大。其他类型的整型表示数的范围如前面,整型数据表示,long,类型使用,l

36、或,L,来表示,int,的不同进制:十六进制用,0 x,或,H,表示,8,进制用,0,或,O,表示,10,进制用,D,或,10,表示,默认类型为,int,整型定义,short s1=10000;short s2=40000;,超出范围,long l=40000L;,Long la=1234567l;,int ia=0 x55;/,十六进制,int ib=011;/8,进制,byte bb=0 x771;/,超出范围,写,TestIntBool.java,程序,byte a=1,b=2;byte c=a+b;int d=a+b;,byte e=2;e=e+2;e+=2;,int ia=0 x2

37、aff;byte bb=(byte)ia;System.out.println(bb);,boolean bl1=false;if(bl1=false)System.out.println(bl1);,boolean bl2=true;if(bl2=1)System.out.println(bl2);,29,.,char,类型,char,字符型为,16,位,,2,个字节,与,c+,不一样,采用的是,unicode,编码,,unicode,编码是统一编码,可包含字母,数字,符号,中文文字等,unicode,码是采用,16,进制表示的 如,u0061,2,个字节的,unicode,编码可以表示,2

38、16,个字符,字符使用单引号来表示,127,个,ASCII,码全可表示 英文字符,控制字符,数字,标点符,表示其他语言的字符:中文,德语,法语,阿拉伯等,一个,char,类型本质上是一个整型,char,与,short,都是,16,位的,他们的差别?,通过查询,unicode,编码集可以获取一个整型值对应的,unicode,字符,unicode,编码集包含了,ASCII,码集的,在,0-127,内,unicode,编码值与,ASCII,码值一样,表示的字符也一样,常见的,ASCII,码值:,A:65 a:97 0:48,通过,unicode,码得到码值可以将,16,进制转换为,10,进制,ch

39、ar zhchar=,中,;char enchar=a;char enchar1=97;,在,java,中,,int,与,char,是可以互相转换的,char ucchar=u0061;char uchar1=u61;,因为,unicode,是,16,进制的,,2,个字节则需要,16,位,需要,4,个,16,进制数,下面写一组,char,与,int,的定义,,TestChar.java,char,数据类型,30,.,String,类型简介,Java,中的转义字符,:单引号,”,:“双引号,:,顺斜杠,n,:换行,t,:,tab,制表符,b,:退格,0,:,u0000 unicode,码值为,0

40、的空字符,String,类型,String,类型:字符串类型,它不是,java,的,8,种基本类型,是类的类型,String,是,java,的一个类,这个类的实例叫做,String,对象,Java,中字符串用”双引号来引用,Java,中的字符串类不是以,0,结尾,String,类是,Java,中使用最多的类,它有很多有用的方法,查看,jdk,的,api,文档,获得,String,类的对象变量,String str1=“Hello”;String str2=new String(“World!”);,String,可做什么操作,使用,+,号来连接字符串,String s1=“12”;int i

41、a=3;int ib=4;,System.out.println(s1+ia+ib);System.out.println(ia+ib+s1);,char charAt(int),:返回参数,int,指示位置上的字符,System.out.println(str1.charAt(0);,String concat(String),:将当前,String,与参数,String,连接起来返回新串,System.out.println(str1.concat(str2);,31,.,String,类型简介,boolean contains(charSequence s),:判断一个字符串中是否包含参

42、数的子串,String str3=“Hello World!”;System.out.println(str3.contains(str1);,boolean equals(String),:比较,2,个字符串内容是否相等,不忽略大小写,String s2=“Hello”;String s3=“Hello”;System.out.println(s2.equals(s3);,boolean equalsIgnoreCase(String),:比较,2,个字符串内容是否相等,忽略大小写,String s4=“heLLo”;System.out.println(s4.equals(s3);Syst

43、em.out.println(s4.equalsIgnoreCase(s3);,int indexOf(String/char),:获得参数字符,/,字符串在改字符串中的第一次出现的位置索引,假如找不到则返回,-1,System.out.println(str3.indexOf(“Wor”);System.out.println(str3.indexOf(o);,length(),:获得字符串的长度,System.out.println(str3.length();,写,TestString.java,,演示上面,String,的功能,32,.,浮点型数据类型,浮点数据类型:种,float,:

44、单精度,位个字节使用,f,或者,F,表示,double,:双精度位个字节默认类型 使用,d,或者,D,表示,浮点数举例,float fa=123.4f;float fb=123.4;,默认是,double double,直接赋给,float,精度丢失,float fc=12.5E300F;float fd=(float)12.5E301;,double da=123D;double db=123.456d;double dc=123.45e301;,浮点数据类型的存储方式,整型存储方式是精确存储,浮点存储方式是近似存储:实数范围太大了,实数太多了,无法在内存中对应每一个实数的状态,浮点数的近似

45、存储在程序中的问题:写,TestFloat.java,实型值分母可为,0,,,double d=0.0/0.0;System.out.println(d);,编译正确,double a=2.0,b=1.91,c=0.09;,if(a-b=c)System.out.println(“ok”);else System.out.pringln(“no ok”);,结果输出”,on ok”,。实型数值直接比较相等不安全,不要直接比较相等,但可以比较大小。,33,.,浮点型数据类型,假如一定想要,2,个实型数值比较是否相等,可以考虑比较,2,个实型数的差是否在一个非常小的范围内,想要输出“,ok”,,则

46、if(Math.abs(a-b-c)(1e-6)System.out.println(“ok”);,Math,类,lang,包下的类,它里面定义了很多方法来实现常用的数学运算,Math,类中的方法都是静态的,Math,类中的方法:,abs(),:求绝对值,sqrt(),:求平方根,pow(),:求乘方,cos(),sin(),tan(),ctan(),:数学的三角函数运算,random(),:获得,0-1,之间的随机数,在,TestFloat.java,中测试使用,Math,类中的方法,Math.abs(-5),Math.sqrt(9),Math.pow(2,3),Math.random()

47、100,:获得,0-100,之间的随机数,34,.,数据类型之间的转换,数据类型之间的转换分为,2,种,自动类型转换,a,类型转换为,b,类型时,,a,的取值范围是,b,的取值范围的完全子集 这就是自动类型转换,在,java,的,8,种基本类型中,除,boolean,以外,其他,7,种类型都是可以相互转换的。,7,种原始类型之间可自动转换结构图,byteshortintlongfloatdouble,char,顺着箭头方向可自动转换;逆着箭头方向则是强制转换,强制类型转换:只要不能自动转换的,则只能是强制转换,整型数据之间的强转:改变数据的符号;改变数值,int a=0 x2aff;byte

48、 b=(byte)a;b,为,-1,强制转换的原理:从最低位开始取到目标类型长度为止,整型之间的强转是保留二进制低位,去掉高位,需要考虑在内存中如何存储,实型强转整型是保留整数,去掉小数,不考虑实型在内存中的如何存储,写一个,DataTypeTest.java,程序演示数据类型转换,35,.,数据类型之间的转换,byte+byte,会自动提升为,int,byte a1=1,a2=2;byte a3=a1+a2;(,精度丢失,),+=,不进行类型提升,byte c=3;c=c+3;c+=3;System.out.println(c);,默认整型为,int,int,,,long,提升为,float

49、有精度丢失,float fa=37;System.out.println(fa);,int ia=(int)fa;System.out.println(ia);,long la=,0 xffffffffffL,;float fb=la;System.out.println(fb);,long lb=(long)fb;System.out.println(lb);,整型之间的强转,int a=0 x2aff;byte b=(byte)a;System.out.println(b);,float,转换为,double,会有精度丢失,float fe=1234.56f;double de=fe;S

50、ystem.out.println(de);,float ff=(float)de;System.out.println(ff);,整型除法,System.out.println(5/2);,System.out.println(float)5/2);,char,与,int,的转换,char c1=A;int iic=c1;System.out.println(iic);,char c2=99;System.out.println(c2);,36,.,Java,中的特殊类型,对象,为什么会有对象,?,早些时候的编程语言和初级程序员将每个变量看作相互无关的实体。例如,如果一个程序需处理某个日期,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服