day01-2021-08-23

学习CGB java大数据课程,它核心3部分组成

1)java语言+ Spring框架
2)互联网架构
3)大数据架构
现在软件企业入门门槛比较高,原来会java或者SSM三大框架走遍天下,
但是现在主流程序技术不够用,企业主流升级到互联网架构(nginx/redis/mycat,docker/k8)
还有大数据技术(hadoop离线分析、flink实时分析)

java+互联网架构+大数据形成了一个非常强大生态链体系,这个别人5到10年都替换不了的。
举例:#c、.net 微软。去年推出.net core核心框架,最新推出它.net微服务架构
和java比.net微服务太菜呢?java 微服务已经经过三代产品的迭代,市场非常成熟,而且阿里、京东、滴滴,一线互联网公司所证明。
阿里dubble,当当dubbleX,SpringCloud Netflix 网飞微服务,SpringCloud Alibaba 阿里出品

java 语言,j2ee架构,EJB企业级架构,所有大型软件鼻祖
SSM 三大框架(核心业务),Spring替代EJB,又继续SpringMVC替代strtus1/2,Mybatis替代Hibernate,形成三大框架,用java语言写的
互联网架构:(nginx负载均衡,提高性能,c)它只解决一个方面的问题,它为整个java平台服务
redis分布式内存缓存(c),mycat 阿里mysql增强代理 java,docker(go),k8
大数据:hadoop(java)、spark(scala编译完java)、storm(3.0时重构使用java)、flink(scala)

学习大数据学python语言还是学习java语言?答案:java

java简介

在这里插入图片描述
java之父,詹姆士高斯林,1955年出生,sun 创建新语言,改造c语言,oka语言。 91诞生(30岁,老了,Spring),
Spring春天,它把僵死java换发新的青春,Spring修改了很多java代码的不足,用更加完善和强大代码所替代。
95改名java
98年里程碑:把java分成3个部分:j2se(JDK 核心api)、j2ee(企业级开发EJB2.0分布式,3.0死了,Spring框架)、j2me(嵌入式)
JavaSE、JavaEE、JavaME
java 1.2 ver2.0
java 1.5 ver5.0 以后版本就按5.0来算,表示它升级内容非常关键,功劳大
java 1.8 ver8.0 主流开发jdk版本
java 1.11 ver11 SpringBoot 力推11版本
java 16 最高版本

JDK它是什么的缩写?

工作中遇到新的技术如何去学习?
推荐百度百科(专业)不会太乱说,官网(英文)
百度demo案例,照着做练习,练多了就了解它的真正作用。

JDK、JRE、JVM的概念和区别

JDK (Java Development Kit) 是 Java 语言的软件开发工具包(SDK) = JRE+Java工具
JRE (Java Runtime Environment) Java运行时环境 = JVM+Java系统类库
JVM(Java Virtual Machine)Java虚拟机

在这里插入图片描述
注意事项:
JDK>JRE>JVM
开发者需要配置JDK环境

IDE集成开发工具:eclipse简介

开发起来特别方便,有智能提示,错误报警,语法高亮。。。提升开发的效率
eclipse(免费)、idea(收费)、vs code

安装都是一路next,安装java时选择一个路径D:/java/env/jdk1.8

检查java和eclipse是否安装好了

java 1.8以上,最好和老师版本一致
eclipse 2.7以上

  • 验证java版本
    进入DOS命令窗口(黑窗口),输入DOS命令:java -version
    注意java后面有一个空格,-减号version固定不能随便写
    如果出现版本看是否是1.8,高了可以,低了不行,最好一致
    在这里插入图片描述

如果出现下面 的提示,说明你的java没有安装,问项目经理老师要安装文件,一路安装即可。

'java' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

   
   
  • 1
  • 2
  • 检查eclipse的环境
    在这里插入图片描述
    在这里插入图片描述
    版本的差异,用最新比较好,修正直接bug
    一路安装,只要大于4.7以上即可,太小的创建项目结构和老师不一样,有些工具无法使用

配置全新的工作空间 workspace

1、手动创建一个新目录
在这里插入图片描述
注意事项:起名时不能有中文(工作空间,可以使用,但是会被专业人士鄙视,早期会出错),不能有空格(可能出错)
即使英文很烂使用翻译字典

2、eclipse switch切换到新目录即可,就是一个全新的工作空间
在这里插入图片描述
在这里插入图片描述

小结:一般在什么时候做这样事情?
1)新开发一个大型项目时
2)新手,新机器
注意事项:不用每次都去创建新的工作空间

配置工作空间字符集 utf-8(支持中文和英文),解决乱码

安装完成默认的编码:gbk 国标
干脆大家都统一编码:utf-8 国际标准uincode

注意事项:
在创建新工作空间的第一件事情,修改字符集,否则中间修改工作空间,旧的项目的字符集是不会被改变,会产生乱码。

在这里插入图片描述
在这里插入图片描述
现今主流字符集编码规则都要设置成 utf-8,(数据库mysql中文乱码,html前台页面中文乱码)

配置桌面,只留包视图和控制台

包视图:package explorer,管理java工程,javaWeb工程(x),Maven工程,SpringBoot工程(微服务)
控制台:console,程序调试,可以打印调试信息到控制台(开发者,用户是开不到)
代码区:展示某个具体的java源文件 *.java

在这里插入图片描述

在这里插入图片描述
注意事项,如果位置不在左边,自己按住标题拖动鼠标

在这里插入图片描述

在这里插入图片描述

我的第一个java程序

开发步骤

1)创建一个java project 项目、工程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)创建一个包 package
在这里插入图片描述
在这里插入图片描述

3)创建一个类 class
在这里插入图片描述
在这里插入图片描述
字体调整大小:快捷键:Ctrl+加号变大,Ctrl+减号变小

4)执行方法 main() 主方法,主函数
5)写代码,打印println,打印信息Hello World.到控制台上

package cn.tedu.hello;

public class HelloWorld {
//main方法要求很多,死背硬记
public static void main(String[] args) {
//自动加载的System类,它下面的方法可以直接被调用
System.out.println(“Hello World.”);
}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

6)运行程序,执行class的main

在这里插入图片描述

java注释

1)单行的注释://
2)多行的注释:/* … /
3)javadoc的注释:/* * …/

各部分含义

/*
 * package 包,包路径
 * cn.tedu.hello;  组成:域名倒写.项目名称
 * ; 分号,一行结束
 */
package cn.tedu.hello;	//中文;不能识别,必须英文

/*

  • public 4个修饰符,公用的,共有的,private私有
  • class 修饰符,类,java中使用最频繁
  • HelloWorld类名,在同一个包下只能一个名字,命名满足大驼峰规则
  • {} 大括号,类体,方法体
  • [] 中括号,数组
  • () 小括号,参数列表
    /
    public class HelloWorld { //class body 类体
    //main方法要求很多,死背硬记
    /
    *
    • javadoc注释
    • public 公用方法
    • static 修饰符,静态(方法分为2种,静态方法,非静态方法)
    • void 无返回值
    • main 入口方法,函数,类中只能有一个方法,它会运行
    • 错误:Duplicate method main(String[]) in type HelloWorld
    • String[] 字符串数组
    • args 参数值
      */
      public static void main(String[] args) { //method body 方法体
      //自动加载的System类,它下面的方法可以直接被调用
      System.out.println(“Hello World.”);
      }
      }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

java项目是如何管理文件的?(了解)

1)workspace 工作空间:C:\2108\ws 磁盘目录(多级)
2)java project 工程:\hello,磁盘目录(一级)
bin目录,src目录(写死,固定,可以进行修改,没必要)
3)package 包,包路径:
(路径中用斜杠标识),包路径cn.tedu.hello(包路径中使用点标识),java规范
\src\cn\tedu\hello 源文件存储磁盘目录
\bin\cn\tedu\hello 字节码文件存储磁盘目录
在这里插入图片描述

4)类文件,源文件,HelloWorld.java
5)类文件,目标文件,字节码文件,HelloWorld.class

java文件和class文件的区别

1)java源文件,它是纯文本文件(可以用任何打开文字的编辑软件都可以访问)。给开发者看的。
2)class目标文件,字节码文件(二进制的文本编辑器打开乱码)。不是给操作系统,是给JVM看的。
编译后文件(翻译java代码为字节码文件)c编译后直接给操作系统,机器码;java编译后给JVM,JVM再次进行编译,机器码,操作系统才能识别。c语言性能最高,java慢,编译型语言,它多了一步JVM,性能下降。它有它的优点,c不能跨平台,java却能跨平台。

什么时候我把java文件进行编译,产生class文件?

class文件是eclipse集成开发工具的功劳,它是在你保存代码时,它自动调用javac.exe(compile)文件,进行编译,自动生成class文件

执行的是java文件还是class文件?

错误: 找不到或无法加载主类 cn.tedu.hello.HelloWorld
原因: java.lang.ClassNotFoundException: cn.tedu.hello.HelloWorld

如果丢失了class文件,就会发生这个异常

java是怎么实现的过程?(了解)

跨平台,为什么需要JVM
在这里插入图片描述

Java执行一个类的过程:
第一步:在eclipse中创建 HelloWorld.java 的源文件
第二步:代码保存后 eclipse 调用 javac.exe 自动生成 HelloWorld.class 字节码文件
第三步:运行时,JVM通过 classload 类类加载器,先加载 java.lang.*下的所有类(rt.jar中),然后加载业务类 HelloWorld.class
第四步:交个操作系统上的对应操作系统的编译器进行编译,因为有个再次编译的过程,所以性能慢,但优点实现了跨平台

而c语言就不同,开发人员本地编译,要为不同的操作系统选择不同的编译器,如果客户有系统切换,就得重新在编译一次,不够灵活,但优点性能高。

明显性能上的牺牲,是为了提高代码一次编译到处运行(java口号!)

小结:

要求大家掌握两点内容:

1、掌握未来学习方向(未来5到10年的职业规划)

全球600多种语言,java目前是最强盛,30岁了,自身有些衰落,但它的生态链非常的强大。
第一阶段:java 没法就业
第二阶段:Spring框架,8k
第三阶段:nginx+redis+mycat,10k
第四阶段:SpringCloud微服务(alibaba+netflix),12k
第五阶段:rabbitmq+docker+k8 15k
第六阶段:大数据hadoop+flink 18k
学习python人工智能,让你的薪资更高。条件:学习cgb课程有如神助,独步天下;学完java(严谨)学python(随意,自由)

c/c# .net/php/javascript/python/java
c语言(强语言),通讯和金融底层,高级语言中性能最好的
.net (强语言)桌面开发,qq游戏,word办公自动化,暴风阴影。微软开源 .net core,推出新的微服务架构
php已经完蛋,php小型网站,都.net和java蚕食,大前端nodejs(vue)和后端java
javascript 和java无关,它脚本语言(弱语言)只能在浏览器中执行,前端页面都采用js
java 企业级开发,大型网站结构上远超其他语言!及时现在java开始被新语言替代,市场上java(jsp+servlet)软件产品5~10年也替换不完。
python也是编译型语言,它比java还慢。java是c儿子,java的底层就是c语言。JIT及时编译达到c的速度。
从企业级软件都是使用java开发的,你想替换5~10年替换不完。

纵观java无愧于第一大语言!本质,不是java自身强大,而是它推出开源政策,别人可以对其源代码进行修改,优化。而是java生态链体系强大。

2、能创建项目,写类,打印

需求:在控制台打印HelloWorld字符串
实现步骤:
1)创建java project工程
2)创建 package 包
3)创建 class 类
4)创建 main方法,入口方法,只有它能执行
5)System.out.println()打印字符串,使用双引号括起来
6)执行

本文链接:

https://blog.csdn.net/nutony/article/details/119861658

我们都知道java可以跨平台,那为何要跨平台?

一次编译到处运行
它为何要牺牲了性能也要做到呢?
一套程序,随便切换操作系统,那是多么自由而爽快的事情呢?一般我们都习惯window上开发,linux上部署运行,靠的就是它的跨平台,靠的就是JVM虚拟机。

那java是如何实现跨平台的?

在这里插入图片描述

Java执行一个类的过程:
第一步:在eclipse中创建 HelloWorld.java 的源文件
第二步:代码保存后 eclipse 调用 javac.exe 自动生成 HelloWorld.class 字节码文件
第三步:运行时,JVM通过 classload 类类加载器,先加载 java.lang.*下的所有类(rt.jar中),然后加载业务类 HelloWorld.class
第四步:交个操作系统上的对应操作系统的编译器进行编译,因为有个再次编译的过程,所以性能慢,但优点实现了跨平台

而c语言就不同,开发人员本地编译,要为不同的操作系统选择不同的编译器,如果客户有系统切换,就得重新在编译一次,不够灵活,但优点性能高。

本文链接:

https://blog.csdn.net/nutony/article/details/119873613

知识回顾

600多种开发语言,为何市场独爱java?

在这里插入图片描述

JDK、JRE、JVM的区别

在这里插入图片描述

java编译过程及跨平台特性

在这里插入图片描述

快速编码

本文链接:

https://blog.csdn.net/nutony/article/details/119875156

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个Java实现的工具类,可以获取两个时间内的所有小时,并将结果存放在List中: ```java import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class HourListGenerator { public static List<String> generateHourList(Date start, Date end) { List<String> hourList = new ArrayList<String>(); Calendar calendar = Calendar.getInstance(); calendar.setTime(start); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); while (calendar.getTime().before(end)) { hourList.add(dateFormat.format(calendar.getTime())); calendar.add(Calendar.HOUR_OF_DAY, 1); } return hourList; } } ``` 使用示例: ```java Date start = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2021-01-01 00:00:00"); Date end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2021-01-02 00:00:00"); List<String> hourList = HourListGenerator.generateHourList(start, end); for (String hour : hourList) { System.out.println(hour); } ``` 输出结果: ``` 2021-01-01 00:00:00 2021-01-01 01:00:00 2021-01-01 02:00:00 2021-01-01 03:00:00 2021-01-01 04:00:00 2021-01-01 05:00:00 2021-01-01 06:00:00 2021-01-01 07:00:00 2021-01-01 08:00:00 2021-01-01 09:00:00 2021-01-01 10:00:00 2021-01-01 11:00:00 2021-01-01 12:00:00 2021-01-01 13:00:00 2021-01-01 14:00:00 2021-01-01 15:00:00 2021-01-01 16:00:00 2021-01-01 17:00:00 2021-01-01 18:00:00 2021-01-01 19:00:00 2021-01-01 20:00:00 2021-01-01 21:00:00 2021-01-01 22:00:00 2021-01-01 23:00:00 ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值