Java基础学习|Day1.java平台、标识符、运算符

java基础

java平台与环境

java平台

平台定义
  1. java ME:小型版,Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。(主要是针对嵌入式设备)

  2. java SE:它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类.(主要针对桌面系统)

  3. java EE:J2EE架构是使用Java技术开发企业级应用的一种事实上的工业标准,它是Java技术不断适应和促进企业级应用过程中的产物。Sun推出J2EE的目的是为了克服传统客户端\服务端模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。

体系框架

四层架构

  1. 客户端层:可以是web浏览器,也可以是java客户端
  2. 服务器端组件层:web层,例如jsp,servlet
  3. EJB层:业务层,封装业务逻辑
  4. 企业信息系统层:数据层,例如,数据库,文件系统等

深入

JSP

JSP = HTML + JAVA ,是一种动态的网页技术,其中既可以定义 HTML,CSS,JavaScript 静态内容,也可以使用 Java 代码定义动态内容。其实,jsp本质上就是一个servlet。

jsp运行过程,浏览器访问时,Tomcat会将hello.jsp转换为hello_jsp.java的一个Servlet,然后这个Servlet会被Tomcat编译为字节码文件Hello_jsp.class,Tomcat会执行这个字节码文件向外提供服务。

在这里插入图片描述

jsp有四个发展阶段

在这里插入图片描述

  1. 使用Servlet技术实现逻辑代码的编写以及页面拼接
  2. jsp的出现要比Servlet方便很多,但同时还是有很多缺点
  3. 使用Servlet进行逻辑开发,JSP进行数据展示,是为了解决JSP页面中JAVA代码混乱的问题。(一定不要直接在JSP中写JAVA代码)
  4. 使用Servlet进行逻辑开发,HTML进行数据展示,AJAX实现数据的动态展示

JSP的缺点:

  1. 书写复杂,阅读麻烦,可以写HTML标签,可以写JAVA代码
  2. 运行依赖各种环境,例如jre,jsp容器,javaEE等,会使程序变得很复杂
  3. 占用磁盘空间较多,jsp在运行过程中,会自动生成.java和.class文件,占用磁盘空间,运行.class文件占用内存。
  4. 调试困难,出现问题需要找自动生成的.java文件进行调试。
  5. 不利于团队开发,如果页面出现问题,需要先找前端开发工程师修改静态页面,再由后端开发将该页面修改为jsp页面。

Servlet

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。

Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

工作模式:

  1. 客户端发送请求至服务器
  2. 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并传给服务器
  3. 服务器将响应返回客户端

使用方法:

Servlet技术的核心是Servlet,它是所有Servlet类必须或间接实现的一个接口,使用时可以直接去实现它,但是一般使用实现HttpServlet抽象类的方法去使用它,

HttpServlet抽象类是继承于GenericServlet抽象类而来的。使用HttpServlet抽象类时,还需要借助分别代表Servlet请求和Servlet响应的HttpServletRequest和HttpServletResponse对象。

HttpServletRequest接口扩展于javax.servlet.ServletRequest接口,HttpServletResponse接口扩展于javax.servlet.servletResponse接口。

在这里插入图片描述

Servlet工作流程

tomcat主要是解析http请求的自愿,将请求信息封装成request对象,于此同时创建一个response对象,然后创建servlet对象,并且调用servlet对象的service()方法,在service()方法中会调用write()方法,其作用是将内容写到response的缓冲区中。最后tomcat会从response缓冲区中获取内容并组装成一个http响应(响应行,响应头,响应体)。

在这里插入图片描述

本来write()是需要一字一句将html写入response缓存中的,但是jsp的出现,简化了这个过程。

EJB

EJBsunJavaEE 服务器端组件模型,设计目标与核心应用是部署分布式应用程序。凭借 java 跨平台的优势,用 EJB 技术部署的分布式系统可以不限于特定的平台。

在 J2EE 里,Enterprise Java Beans(EJB) 称为 Java 企业 Bean,是 Java 的核心代码,分别是会话 Bean(Session Bean),实体 Bean(Entity Bean)和消息驱动 Bean(MessageDriven Bean)。

有点类似于spring容器的注入。

基于EJB的程序架构总体有一个非常优秀的思想:业务逻辑相关的实现集中在EJB中完成,而EJB容器则负责提供带有重复性质的、系统级的功能,这样EJB组件就可对外提供完整的业务服务。

由于EJB 2拥有无比健壮的特性,而且还考虑到远程访问等大量特性,所以导致EJB 2的开发有点复杂。因此导致许多开发者的批评,以致后来直接催生了Spring框架。

Spring框架实际上大量参考了EJB的设计理念,只是Spring摈弃了EJB开发中的3大烦琐之处:

  1. EJB组件的接口和类必须继承指定接口或类
  2. 需要大量使用XML配置文件
  3. EJB组件必须打包成JAR包

对开发者而言,Spring容器要求的Bean要简单的多,这些Bean无需实现任何接口或继承任何基类,无需单独为每个Bean类使用XML配置文件,无需打包成JAR文件。

组件支持

J2EE应用程序是由组件构成成的,其中组件是一个个拥有独立功能的软件单元,它们通过相关的类和文件组成J2EE的应用程序,并且与其他组件交互。

  1. 客户层组件:包括客户端应用程序(web浏览器),applets(独立应用程序)
  2. WEB层组件:包括JSP,servlet
  3. 业务层组件:EJB
技术支持
  1. JDBC
  2. EJB
  3. JSP
  4. Servlet
  5. xml
  6. JavaMail
  7. JMS

java环境

java环境主要涉及到jdk,jre,jvm三大部分,三者的关系是jvm属于jre的一部分,jre属于java的一部分。

jdk

jdk是java的开发工具包,是整个java开发的核心。包含了java程序运行环境jre,java基础类库java API,以及一些工具包,例如javac源码编译器以及一些命令。

jre

jre是java程序的运行环境,所有的java程序都必须依赖jre才能运行。jre包含jvm,但是只有jvm是不能完全解释字节码文件的,还需要一些核心类库。这些类库都存放在jre目录下的lib文件中。其中包含jvm和核心类库。

jvm

jvm就是java虚拟机,java虚拟机就是jvm,jvm就是执行java程序的虚拟计算机系统,主要是为了了解java程序的运行过程,jvm的特点就在于它的内存管理,学习原因是为了如果内存出了问题,出现了内存溢出,内存泄露怎么办。虽然平常开发不用考虑内存问题,但是如果出现了内存问题还是要明白如何解决。

标识符

标识符主要是给包,类,方法,变量起名字的符号。

组成规则:主要是由字母数字,下划线,美元符号组成。

命名规则

  1. 包名:全部小写,多级包用.隔开。com.lsj
  2. 类、接口:一个单词首字母大写,多个单词每个单词的首字母大写。Student,Car,HelloWorld
  3. 方法和变量:一个单词首字母小写,多个单词从第二个单词开始每个单词的首字母大写。age,maxAge,show(),getAge()。
  4. 常量:如果是一个单词,所有字母大写,如果是多个单词,所有单词大写,用下划线区分每个单词。DATE,MAX_AGE。
  5. 项目名:全部用小写字母,多个单词之间用横杆-分割。举例:demo,spring-boot

注意事项

  1. 不能以数字开头
  2. 不能是java中的关键字
  3. java标识符大小写敏感,但是长度无限制
  4. 标识符还不能包含空格

运算符

算数运算符

  1. +、-、*、/ 基本四则运算符
  2. % 取模,也就是取余数 5%2 = 1
  3. – 自减,有两种写法,a–或者–a,结果都等同于a=a-1,a–在程序执行后执行,–a在程序执行前执行
  4. ++ 自增

比较运算符

  1. <、>、>=、<= 基本比较运算符
  2. == 比较两个操作数是否相等,相等结果为true,否则为false
  3. != 比较两个操作数是否不等,相等结果为false,否则为true

逻辑运算符

  1. & 逻辑与,两边结果同为true结果为true
  2. && 短路与 只要又一遍结果为false,就停止执行,结果为false
  3. | 逻辑或,两边结果只要有一个为true,结果为true
  4. || 短路或,只要有一边结果为true,就停止执行,结果为true
  5. +,字符串连接
  6. ! 非,非真是假,非假是真

三目运算符

? :

1 ? 2 : 3

1的位置代表一个表达式,如果表达式的值为true ,则三目运算符的结果为2位置的值

赋值运算符

  1. = 简单的赋值运算符
  2. += -= *= /= 复合运算 a+=30 也就是 a=a+30
  • 27
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值