还剩39页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
基础开发培训Java欢迎参加基础开发培训课程本课程旨在为初学者和转职开发者提供全Java面、系统的编程知识我们将从语言的基础概念开始,逐步深入到Java Java面向对象编程、常用、数据库操作等企业级开发所需的核心技能API课程内容紧密结合实际开发需求,通过大量的代码示例和实践项目,帮助学员快速掌握开发技能无论您是编程新手还是希望转入开发领域的Java Java专业人士,这个培训都将为您打下坚实的基础培训目标与受众掌握核心语法Java深入理解基础语法、数据类型、控制结构等核心概念,建立扎实的Java编程基础熟练使用主流API掌握标准库中的常用,包括集合框架、操作、多线程等企业Java APIIO开发必备技能面向实际开发需求针对初学者和转职开发者设计,课程内容紧贴企业实际开发场景和用人需求培养解决问题能力通过大量实践练习,培养独立分析问题和解决问题的编程思维能力简介与发展史Java诞生背景核心特征Java由公司在年正式发布,由詹姆具有跨平台兼容性、面向对象编程特性和强大的安全机制Java SunMicrosystems1995Java斯高斯林()领导的团队开发最初被称为其虚拟机()技术确保了代码的平台无关性·James GoslingJVM,后来更名为Oak Java拥有活跃的开源社区和丰富的第三方库生态系统,为开发Java的设计理念是一次编写,到处运行(者提供了强大的支持和资源这些特性使成为企业级应用JavaWrite Once,Run Java),这一特性使其迅速成为跨平台开发的首选语言开发的主流选择Anywhere发展里程碑Java1JDK
1.01996首个稳定版本发布,确立了的基础架构和核心特性Java2JDK
1.21998引入、集合框架和编译器,标志着平台Swing GUIJIT Java2的诞生3JDK
5.02004添加泛型、注解、自动装箱等重要特性,大幅提升开发效率4JDK82014引入表达式和,支持函数式编程范式Lambda StreamAPI5JDK11/17LTS长期支持版本,提供模块化系统和性能优化,是企业级应用的主流选择的特点Java平台无关性通过虚拟机()实现一次编写,到处运行源代码Java JVMJava编译成字节码,可在任何安装了的系统上运行,无需重新编译JVM面向对象完全支持面向对象编程,包括封装、继承和多态通过类paradigm和对象的概念,使代码更加模块化、可重用和易于维护安全性与稳定性内置安全机制防止恶意代码执行,自动内存管理避免内存泄漏强类型检查和异常处理机制确保程序运行的稳定性和可靠性主流应用场景Java应用开发移动应用开发Web、等框架使成为企业级应用开应用开发的主要语言,拥有庞大的移动开发生态系统同Spring BootSpring MVCJava WebAndroid发的首选支持微服务架构,适用于大规模分布式系统开发时支持跨平台移动应用开发框架企业级后端系统大数据与云计算银行、电商、等核心业务系统的主流开发语言强大的并发处、、等大数据框架均基于开发在云原ERP HadoopSpark KafkaJava理能力和稳定性满足企业级应用需求生应用和分布式计算领域应用广泛语言体系结构Java开发工具包JDK包含编译器、调试器等开发工具运行环境JRE程序运行所需的环境Java虚拟机JVM执行字节码的核心引擎Java()是开发工具包,包含了编译器、调试器等开发工具,以及完整的(JDK JavaDevelopment KitJava javacjdb JREJRE Java)是运行环境,包含和标准库()是虚拟机,负责执行Runtime EnvironmentJava JVMJava JVMJava VirtualMachine Java编译后的字节码文件安装与环境变量配置JDK下载JDK访问官网或官网,下载适合操作系统的安装包Oracle OpenJDKJDK推荐下载版本如或,确保长期支持和稳定性LTS JDK11JDK17安装JDK运行下载的安装程序,按照向导完成安装记住安装路径,通常在()或()C:\Program Files\Java\Windows/usr/lib/jvm/Linux目录下配置环境变量设置环境变量指向安装目录,将JAVA_HOME JDK添加到变量中配置完成后在命令%JAVA_HOME%\bin PATH行输入验证安装成功java-version常用开发Java IDEEclipseIDE IntelliJIDEA ApacheNetBeans免费开源的集成开发环境,拥有强大的插公司开发的智能,拥有出色官方支持的免费,内置对JetBrains IDEOracle IDEJava件生态系统支持多种编程语言,提供丰的代码补全和重构功能社区版免费,商的良好支持界面简洁,学习曲线较缓,EE富的调试和重构功能,是开发的经典业版提供更多高级特性,是目前最受欢迎适合初学者使用,同时提供专业级的开发Java选择的开发工具功能Java第一个程序演示Java编写源代码创建文件,编写包含方法的类HelloWorld.java mainJava编译源代码使用命令编译源文件,生成字节码文件javac HelloWorld.class运行程序使用命令执行字节码文件,在控制台输出java HelloWorld验证结果确认程序正确运行,理解程序的完整执行流程Javapublic classHelloWorld{public staticvoid mainString[]args{System.out.printlnHello World!;}}程序构成Java导入类Import Class引用其他包中的类程序的基本构建单元语句属性定义•import•包主方法Package静态导入方法实现Main••组织和管理类的命名空间通配符导入访问修饰符程序执行的入口点••避免类名冲突••public staticvoid main控制访问权限参数••String[]args便于代码管理程序启动逻辑••标识符与关键字标识符命名规则保留关键字Java标识符必须以字母、下划线或美元符号开头,后续字符可语言预定义了多个关键字,这些关键字具有特殊含义,Java Java50以是字母、数字、下划线或美元符号标识符区分大小写,不能不能用作标识符关键字分为不同类别访问控制、类和方法、使用关键字作为标识符程序控制流、错误处理等Java类名大驼峰命名法()访问修饰符、、•PascalCase•public privateprotected方法名小驼峰命名法()类型关键字、、•camelCase•class interfaceenum常量名全大写下划线分隔控制流、、、、••if elsewhile forswitch变量名小驼峰命名法异常处理、、、••try catchfinally throw基本数据类型Java数据类型字节数取值范围默认值到byte1-1281270到short2-32768327670约亿到亿int4-21210约万亿到long8-9220L万亿922单精度浮点数float
40.0f双精度浮点数double
80.0d到char2065535\u0000或boolean1true falsefalse提供种基本数据类型,分为整型、浮点型、字符型和布尔型每种类型都有固定的内存占Java8用和取值范围理解这些基本类型是编程的基础,正确选择数据类型可以优化程序性能和内Java存使用变量与常量局部变量在方法内部声明,作用域仅限于方法内成员变量类中定义的变量,可被类的所有方法访问常量变量使用关键字声明,值不可改变final变量的生命周期取决于其声明位置局部变量在方法执行时创建,方法结束时销毁成员变量随对象创建而存在,对象被垃圾回收时销毁静态变量在类加载时创建,程序结束时销毁常量一旦赋值就不能修改,通常用于定义不变的值如数学常数、配置参数等运算符详解算术运算符关系运算符加、减、乘、除、取模,大于、小于、等于、不等于+-*/%==以及自增、自减运算符、大于等于、小于等于++--!===位运算符逻辑运算符按位与、按位或、按位异或、逻辑与、逻辑或、逻辑非,|^||!按位非、左移、右移支持短路求值提高效率~数据类型转换隐式转换小范围类型自动转换为大范围类型强制转换大范围类型强制转换为小范围类型转换规则遵循安全性原则,避免精度损失注意事项检查溢出和精度问题支持自动类型提升,如可以自动转换为强制类型转换需要显式声明,可Java byteint能导致精度损失或数据溢出浮点数转整数会截断小数部分,大整数转小整数可能产生溢出在进行类型转换时,要充分考虑数据安全性和程序逻辑的正确性控制流程语句34条件语句类型循环语句类型、、语句、、、增强循环if if-else switchfor whiledo-while for2跳转语句类型和语句break continue提供了丰富的控制流程语句来控制程序执行顺序条件语句根据条件表达式的真Java假来决定执行路径,语句适用于多分支选择循环语句用于重复执行代码块,switch循环适合已知次数的循环,循环适合条件驱动的循环跳转语句用于改变正for while常的程序执行流程,用于跳出循环或,用于跳过当前循环迭代break switchcontinue程序案例基本控制流程条件判断示例循环遍历示例int score=85;//for循环计算1到100的和if score=90{int sum=0;System.out.println优秀;for inti=1;i=100;i++{}else ifscore=80{sum+=i;System.out.println良好;}}else ifscore=60{System.out.println1到100的和是:+sum;System.out.println及格;}else{//while循环输入验证System.out.println不及格;Scanner input=new ScannerSystem.in;}int number;do{System.out.print请输入正数:;number=input.nextInt;}while number=0;数组基础一维数组二维数组声明声明int[]arr=new int
[5];int[][]matrix=new或或int[]arr={1,2,3,4,5};int
[3]
[4];int[][]matrix={{1,2},{3,4}};访问元素使用索引,从开始0属性获取数组长度遍历可可以理解为数组的数组外层循环length使用传统循环或增强循环遍历行,内层循环遍历列适用于for for矩阵运算、表格数据等场景数组常见操作排序、转字符串、复Arrays.sort Arrays.toString System.arraycopy制数组注意数组越界异常,确保索引在有效范围内数组一旦创建,长度固定不可变方法(函数)方法定义包含访问修饰符、返回类型、方法名、参数列表和方法体方法调用通过对象或类名调用,传递实际参数,接收返回值参数传递采用值传递,基本类型传值,引用类型传引用的副本Java方法重载同一个类中方法名相同,参数列表不同的多个方法面向对象思想封装Encapsulation将数据和操作数据的方法绑定在一起,通过访问修饰符控制外部访问隐藏实现细节,只暴露必要的接口提高代码安全性和可维护性,实现信息隐藏继承Inheritance子类继承父类的属性和方法,实现代码复用通过关键字建extends立继承关系子类可以重写父类方法,扩展或修改功能支持单继承,但可以多层继承多态Polymorphism同一个方法调用可以产生不同的行为包括方法重载和方法重写两种形式运行时多态通过动态绑定实现,提高程序灵活性和扩展性类与对象详解类的定义类是对象的模板和蓝图,定义了对象的属性和行为属性(成员变量)描述对象状态•方法(成员函数)定义对象行为•构造方法用于初始化对象•对象的创建使用关键字根据类模板创建具体的对象实例new分配内存空间•调用构造方法初始化•返回对象引用•属性和方法访问通过点操作符访问对象的属性和方法对象属性名访问属性•.对象方法名调用方法•.遵循访问权限控制•构造方法默认构造方法有参构造方法如果类中没有显式定义构造方法,会自动提供一个无参的默认构造方法自定义构造方法可以接受参数,用于在创建对象时初始化属性构造方法可Java默认构造方法将成员变量初始化为默认值以重载,提供多种初始化方式public classStudent{public classStudent{private Stringname;private Stringname;private int age;private intage;//默认构造方法(隐式)public StudentStringname,intage{public Student{this.name=name;//name=null,age=0this.age=age;}}}public StudentStringname{this.name=name;this.age=18;//默认年龄}}与关键字this super关键字this指向当前对象的引用,用于区分成员变量和局部变量调用本类的其this他构造方法,必须在构造方法的第一行关键字super指向父类对象的引用,用于访问父类的属性和方法调用父类构造super方法,也必须在子类构造方法的第一行使用场景用于解决命名冲突、构造方法链式调用用于继承中访问父类成this super员、调用父类构造方法注意事项和不能在静态方法中使用构造方法中和不能同时this superthis super出现,且必须是第一条语句继承机制父类设计定义通用属性和方法,为子类提供基础功能子类继承使用关键字继承父类,获得父类的所有非私有成员extends功能扩展子类可以添加新的属性和方法,扩展父类功能继承机制允许子类复用父类的代码,实现代码重用和层次化设计子类自动获得父类的所有和成员,但不能访Java publicprotected问成员继承体现了关系,如是的特殊情况只支持单继承,但支持多层继承和接口的多实现private is-a StudentPerson Java方法重写Override重写定义注解@Override子类重新实现父类的方法,方法签名必建议使用注解标记重写方法,@Override须完全相同便于编译器检查动态绑定重写规则运行时根据对象实际类型调用相应的重访问权限不能降低,返回类型必须兼容,写方法不能抛出更多异常多态性与动态绑定1向上转型子类对象赋值给父类引用,自动完成父类引用只能调用父类中定义的方法,但实际执行的是子类重写的方法2动态绑定程序运行时根据对象的实际类型决定调用哪个方法虚拟Java机在运行时查找方法的具体实现,实现真正的多态3向下转型父类引用强制转换为子类类型,需要显式转换转换前应使用检查类型,避免异常instanceof ClassCastException抽象类与接口抽象类接口Abstract ClassInterface使用关键字声明的类,不能被实例化可以包含抽象使用关键字声明,定义类必须实现的行为规范接口abstract interface方法和具体方法,抽象方法必须在子类中实现中的方法默认是的public abstract可以有构造方法不能有构造方法••可以有成员变量只能有常量••public staticfinal可以有具体方法实现所有方法都是抽象的后可有默认方法••JDK8支持单继承支持多实现••适用于有共同行为但部分方法需要子类具体实现的场景适用于定义类的行为契约,实现多重继承的效果常用基础Java API类详解类常用方法String Math对象是不可变的,每次操作都会提供数学计算相关的静态方法包括基String产生新对象常用方法包括、本运算、三角函数、对数函数等length、、等charAt substringindexOf绝对值•Math.abs-字符串连接使用或•+concat最大最小值•Math.max/min-比较使用而非•equals==随机数•Math.random-大小写转换•幂运算•Math.pow-toUpperCase/toLowerCase和类System Object类提供系统相关功能,类是所有类的根父类System Object控制台输出•System.out.println-当前时间•System.currentTimeMillis-对象比较•Object.equals-字符串表示•Object.toString-包装类与自动装箱包装类概念自动装箱自动拆箱工具方法为每个基本数据类型提供对应基本类型自动转换为包装类对包装类对象自动转换为基本类包装类提供类型转换和解析方的包装类象型法包装类将基本数据类型封装成对象,使其具有面向对象特性、、等包装类提供了丰富的工具方法自动装箱和拆箱Integer DoubleBoolean简化了基本类型和包装类之间的转换包装类对象可以为,而基本类型不可以,这在某些场景下很有用null集合框架基础接口Collection所有集合类的根接口和接口List Set有序可重复和无序不重复集合接口Map键值对映射集合具体实现类、、等ArrayList HashSetHashMap集合框架提供了一套设计优良、功能强大的数据结构接口定义了集合的基本操作,接口扩展了有序集合的特性,接口Java CollectionList Set定义了不允许重复元素的集合接口独立于,专门处理键值对映射选择合适的集合类型可以大大提高程序性能和代码质量Map Collection与ArrayList LinkedList特点特点ArrayList LinkedList基于动态数组实现,支持随机访问查找元素效率高,时间复杂基于双向链表实现,不支持随机访问插入删除元素效率高,时度为在数组末尾添加元素效率高,但在中间插入删除效间复杂度为查找元素需要遍历链表,效率相对较低O1O1率较低适合频繁插入删除的场景•适合频繁查询访问的场景•内存开销相对较大(存储指针)•内存占用相对较小•实现了接口,可用作队列•Deque支持按索引快速访问•不需要预分配连续内存空间•扩容时需要复制整个数组•与HashSet TreeSet实现原理HashSet基于哈希表实现,通过和方法保证元素唯hashCode equals一性查找、插入、删除操作平均时间复杂度为O1实现原理TreeSet基于红黑树实现,元素会自动排序要求元素实现接口或提供比较器操作时间复杂Comparable Comparator度为Olog n使用场景对比适合需要快速查找的场景,适合需要有序存HashSet TreeSet储的场景性能更高,提供排序功能HashSet TreeSet与HashMap TreeMap特性HashMap基于哈希表实现的键值对映射,允许键和值查找效率高,null null平均时间复杂度键的顺序不固定,线程不安全适用于大多数O1键值映射场景特性TreeMap基于红黑树实现,键会自动排序不允许键,但允许值所null null有操作时间复杂度线程不安全,适用于需要有序键值对的Olog n场景遍历方式两者都支持、、三种遍历方式keySet valuesentrySet遍历顺序不确定,按键的自然顺序或自定义顺序HashMap TreeMap遍历异常处理机制Java异常类型分类异常分为检查异常()和运行时异常Java CheckedException()检查异常必须处理,运行时异常可选择性处Runtime Exception理类表示严重的系统错误Error语法try-catch-finally块包含可能出现异常的代码,块处理特定类型的异常,try catch块包含无论是否异常都要执行的代码可以有多个块处finally catch理不同异常与关键字throw throws用于手动抛出异常对象,用于在方法声明中标明可throw throws能抛出的异常类型调用声明的方法必须处理或继续抛出throws异常自定义异常继承类Exception创建检查异常,必须在方法中声明或处理适用于可预见的异常情况•强制调用者处理异常•提高代码健壮性•继承类RuntimeException创建运行时异常,可选择性处理适用于编程错误导致的异常•不强制处理,简化代码•通过良好编程习惯避免•提供有意义的异常信息重写构造方法,提供详细的错误描述包含错误原因和上下文信息•便于调试和问题定位•提高用户体验•输入输出()体系IO字节流字符流以字节为单位进行数据传输以字符为单位进行数据传输和和•InputStream OutputStream2•Reader Writer适用于二进制文件适用于文本文件••图片、音频、视频等自动处理字符编码••缓冲流类File提高操作效率文件和目录的抽象表示IO文件属性查询•BufferedInputStream/OutputStream•文件操作(创建、删除)•BufferedReader/Writer•减少系统调用次数目录遍历••应用实例BufferedReader/Writer读取文件示例写入文件示例try BufferedReaderreader=new tryBufferedWriter writer=newBufferedReader BufferedWriternewFileReaderinput.txt{new FileWriteroutput.txt{String line;writer.writeHello World!;while line=reader.readLine!=null writer.newLine;{writer.writeJava IOProgramming;System.out.printlnline;writer.flush;//强制刷新缓冲区}}catch IOExceptione{}catch IOExceptione{e.printStackTrace;e.printStackTrace;}}使用语法自动关闭资源将数据先写入缓冲区,当缓冲区满或调用try-with-resources BufferedWriter提供方法逐行读取,效率比直接使时才写入文件方法添加系统相关的换行符BufferedReader readLineflush newLine用更高FileReader对象序列化实现接口Serializable类必须实现接口才能被序列化这是一个标记接口,不包含任Serializable何方法序列化会保存对象的状态信息serialVersionUID建议显式声明,确保版本兼容性如果不声明,会serialVersionUID JVM自动生成,但类结构变化时可能导致序列化失败关键字transient使用修饰不需要序列化的字段这些字段在反序列化时会被初始transient化为默认值,适用于敏感信息或临时数据ObjectInputStream/OutputStream使用的方法序列化对象,使用ObjectOutputStream writeObject的方法反序列化对象ObjectInputStream readObject图形界面开发()基础GUI与区别常用组件AWT SwingSwing()是作为顶级容器,作为中间容器,AWT AbstractWindow ToolkitJava JFrameJPanel最早的工具包,组件依赖操作系统、、等作为基本GUI JButtonJLabel JTextField是的增强版,提供更丰富的组件组件布局管理器控制组件排列方式Swing AWT和更好的跨平台支持主窗口•JFrame-组件是重量级的•AWT面板容器•JPanel-组件是轻量级的•Swing按钮•JButton-外观可定制•Swing标签•JLabel-简单窗口示例JFrame frame=new JFrame我的窗口;frame.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;frame.setSize400,300;frame.setLocationRelativeTonull;frame.setVisibletrue;创建基本窗口需要设置标题、关闭操作、大小、位置和可见性事件监听机制事件源事件对象Event SourceEvent Object产生事件的组件,如按钮、文本框等封装事件信息的对象,包含事件类型、事件源负责生成事件对象并通知监听器源组件等信息常见有、ActionEvent等MouseEvent事件监听器Event Listener事件处理Event Handling实现特定监听器接口的对象,处理相应监听器中定义的具体处理逻辑,响应用类型的事件一个组件可以有多个监听户操作并执行相应的业务逻辑器。
个人认证
优秀文档
获得点赞 0