java课程体系简介
课程java工程师,后台开发;分为5个阶段;
第一阶段: java基础: 数据类型、变量、控制语句、数组、String、面向对象、集合、IO、线程、反射、网络编程;第一阶段是整个课程的核心;是基础,直接关系到后面课程的学习。
第二阶段: javaWeb开发: HTML、CSS、JavaScript、Servlet、JSP、MVC设计模式、三层结构、MySQL数据库、JDBC连接数据库。MyBatis框架的基础是JDBC、SpringMVC框架的基础Servlet; 阶段项目:小米商城,从购物、加入购物车、支付宝模拟支付。
第三阶段: 框架开发 SSM
Spring框架(开发业务层)、SpringMVC开发表示层、MyBatis框架开发持久层(和数据库交互);阶段项目: OA系统办公系统。项目要实现所有的功能,
第四阶段: 分布式项目开发
29天,做项目、老师带领学生做一个分布式项目;SpringBoot、SpringCloud、RabbitMQ、Dubbo、Zoookeeper、Redis、MyCat数据库读写分离、Activity工作流。SpringCloud Alibaba:Nacos服务注册中心、Sentinel限流、熔断、Seata分布式事务。
第五阶段: 面试题和简历
公司面试的问题很麻烦,掌握常见的面试题,框架原理、SQL数据库的面试题; 10天课程,讲解面试题和简历。
有问题还可以问老师,扶上马送一程。
java语言简介
java诞生于20世纪90年代中期, 1995左右; SUN MacroSystem 太阳微系统, 注重工程师文化、注重技术、但是销售不给力。并没有转成公司的现金流; 2009年被Oracle公司收购,IBM公司也有意向收购SUN公司; 但是IBM公司的业务和SUN公司的业务有很多重合的。IBM有自己系统、SUN也有,IBM有服务器硬件、SUN也有,IBM有eclipse 、SUN也有NetBean。 Oralce公司只有数据库产品,Oracle公司的创始人拉里埃里森,70多岁,小朋友30岁; 埃里森名言: 我喜欢竞争,但是我不喜欢看到竞争对手。Oracle不断收购其他公司,PeopleSoft 、BEA、 SUN等公司。
java创立之初是用来做智能家电: 微波炉、电烤箱、机顶盒;SUN公司接到做机顶盒项目,用户可以点播电视剧;SUN公司成立一个小组:Green, 老大就是James Gosling 詹姆斯高斯林, 首选的语言是C++, 经过商讨发现C++不合适,原因是运行的设备: 存储空间有限、电力有限、处理器速度有限。Green小组基于C++开发一个新的语言:Oak橡树的意思。机顶盒项目也成功但是没有被采纳。
但是项目研发的Oak语言成功的保留下来,随着互联网的发展,Oak得到飞速的发展。java起家靠的Applet(小程序); 就是再浏览器中嵌入java程序,但是这个Applet是一个动画。申请注册商标,Oak被一家硬件公司注册过了,当时喝的咖啡,有一个爪哇岛的,就命名java。
人还健在,SUN被收购之后,离开了;google工作一段时间,创业公司;海洋技术。
JAVA平台的概念
java在发展过程中延伸出三大平台:
- JAVA SE Standard Edition 标准版 第一阶段的课程, 开发桌面应用, SE也可以开发QQ之类的软件,普通的MIS
- JAVA EE Enterprise Edition 企业版 第二阶段的课程, 开发大型的企业级应用,淘宝商城、京东商城、工商银行
- JAVA ME Macro Edition 微型版 : 智能卡、探路者号火星车, Android的盛行,ME用的场景有限
JAVA语言的特点
开源:开放源代码,Java的 jdk 源码可以对外共享
面向对象:是一个高级编程思想,可以让程序的开发变的简单.
跨平台:java程序在任何的操作系统上都可以运行
编译性:Java程序写好之后,需要编译器进行编译(生成的是字节码文件),可以提高程序的运行效率.
动态性:在程序的运行过程中,可以动态的决定程序运行的代码功能,涉及到反射技术.
JAVA语言的两大特性
- 垃圾回收
- 跨平台
垃圾回收机制
讲的内存的申请和回收, 程序运行的过程是从磁盘加载到内存,不断的申请内存。问题: 内存如何回收?在C++里面,申请内存是通过构造方法;而回收内存是通过C++的析构函数,但是要程序员进行手动的回收;这个很容易出现遗忘的,出现内存的溢出。而java程序是自动回收内存; 程序员不用手动的去释放内存,有一个后台线程进行垃圾回收。但是垃圾回收的时间不是固定的,java也支持手动回收。
-
标记清楚算法
-
标记整理算法
-
复制算法
-
分代收集算法
跨平台
跨平台是跨不同的操作系统: window、linux、Mac系统;Write Once Only Once一次编写到处运行; windows上C#写的程序只能运行在window系统。工作用的window 或者 mac系统,生成环境把系统部署到Linux服务器,java如何实现跨平台的?JVM java virtual machine java虚拟机。
SUN公司为不同的操作系统提供不同jdk版本,我们编写的java程序不是直接运行在操作系统上,而是运行在JVM上。不同的系统安装上对应的JDK即可;JDK中包括JVM。
- 类加载子系统
- 字节码文件
- 运行时数据区
- 类加载到JVM之后分配相应的内存
- 执行引擎
- 解释字节码文件
java编译之后的字节码文件: 符合JVM规范的文件,不是直接二进制,并不是000111; JVM负责解释字节码文件
window系统: jVisualVM.exe可以打开查看当前虚拟机的情况。
JDK的下载和配置环境变量
java的发展历程:
开发JAVA程序,首先要从Oracle官网下载JDK, 官网;目前主流的JDK版本是java8,市场占有率80%以上,所以本次课程以java8作为开发平台。jdk安装一路next即可,记一下安装的路径;安装完成之后配置环境变量如下:
配置 JAVA_HOME: 值是jdk的安装目录
目的:
1.为了在修改jdk的版本的时候,不会频繁的修改Path环境变量(系统自带)
2.以后的一些软件的运行需要依赖JAVA_HOME环境变量自动的识别jdk 比如eclipse idea tomcat
JAVA_HOME: D:\JAVA\JDK
配置 Path:是 jdk的bin目录
Path: D:\JAVA\JDK \bin------> 用JAVA_HOME 的变量名替代Path中的jdk的安装目录部分
Path: %JAVA_HOME%\bin
~ » java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
------------------------------------------------------------
在命令行窗口执行 java -version 如果能够显示正确的版本号,说明配置成功。
HelloWorld程序
public class HelloWorld{
public static void main(String [] args){
System.out.println("欢迎学习软件开发---高薪就业.....");
}
}
编写java程序可以使用记事本,VSCode、sublime text3等超级记事本,也可以是eclipse、IDEA等集成开发环境。以上是用记事本编写的第一个java程序;在DOS窗口中执行 javac HelloWorld.java 生成字节码文件HelloWorld.class;然后是执行java程序:java HelloWorld
~/Documents » javac HelloWorld.java
------------------------------------------------------------
~/Documents» java HelloWorld
欢迎学习软件开发---高薪就业.....
------------------------------------------------------------
注意的问题:
- 文件名和公有类的名称一致: HelloWorld.java
- JAVA语言区分大小写的,HelloWorld和helloWorld是不一样的
- 字符串类型要带有双引号的
- 标点符号都是英文状态下的
- main方法: 主方法,程序的入口方法, mian方法, public 公有的、static 表示的静态的、void空的没有返回值、main方法名称。
- String [ ] args : String表示的字符串(多个字符连接在一起,羊肉串), [ ] 数组,args表示参数的名称,不一定是args; abc
- System.out.println(); 向控制台输出一句话,如果输出的数字类型: 可以直接输出。
- print打印输出不换行的
IDEA开发
IDEA首先我们创建空项目, 意思是我的工作目录,modules模块的意思,就是我们要创建一个项目。
下一步:
点击Finish
在弹出的对话框中点 “+”
选择Java,点击Next
输入模块名称,点Finish
点击OK即可。
课后作业
案例一
public class Demo1 {
/**
* main是java的入口方法,程序从该方法执行;也在main方法结束
* @param args
*/
public static void main(String [] args){
//print和println的区别
System.out.println("姓名:张无忌");//打印并换行
System.out.println("性别:男");
System.out.println("=================");
System.out.print("姓名:赵敏");//只打印不换行
System.out.print("性别:女");
System.out.println("===================");
System.out.print("姓名:周芷若\n");//\n换行
System.out.print("性别:女");
}
}
案例二
public class Demo2 {
public static void main(String [] args){
// \t制表符 tab键功能
System.out.println("姓名\t性别\t年龄\t籍贯");
System.out.println("张无忌\t男\t\t25\t\t河南");
System.out.println("小昭\t女\t\t16\t\t波斯");
System.out.println("-------------------");
System.out.println("八戒说:“我们散伙吧,我会高老庄找老婆。”");
System.out.println("八戒说:\"我们散伙吧,我会高老庄找老婆。\"");
System.out.println("安装路径: aaa\\bbb\\ccc\\qq.exe");
}
}