Java语言

浏览器输入一个地址,就能获取一个页面,页面资源可以由Java程序提供。

Java

Java程序 经过 开发编译运行 才能提供资源,整个过程由JDK(Java SE Development Kit)实现。

程序是指令集合,声明解决问题的步骤。Java语言实现的程序 可以被 计算机识别。

简要说下JDK8提供的功能,参考 Java8 Docs (oracle.com) Java Downloads | Oracle

JDK8文件结构
├── bin
│   ├── java
├── jre
│   ├── bin
│        ├──server
│   ├── lib
│   │   ├── rt.jar
  1. Java语言 java.lang(The Java Programming Language )有特定的语法规则,组成Java API
  2. Java API /jre/rt.java(The Java Application Programming Interface)组件集合+三方库
  3. JVM /jre/server(The Java Virtual Machine)用于运行程序,提供内存管理(分配、回收和溢出)和访问 机制,能避免大部分的内存泄漏和指针越界问题。
  4. 工具 /bin:文档Javadoc;编译Javac;运行java;监控(javap,javaws,jconsole,jmap,jstack,jstatd,jvisualvm)

组件的概念:软件提供产品;组件提供可重复使用的半成品;程序员加工组件,做成产品。
不可复用的部分,Java8通过函数式接口传递有差异的方法。

Java 语法

(整个Java语言特性体现在Java封装的API中)

  1. 语言基本:data types, variables, arrays, operators, and control flow.
  2. 强类型:基本类型,自定义类型(Number, Strings, Enum枚举, Collections)
  3. 面向对象:Class, Interfaces, Generics泛型,Throwable
  4. 多线程:
  5. 注解:给compiler提供Metadata
    < Java5:集合框架、异常、反射代理、并发、正则、文件、网络、
    Java5:枚举、泛型、注解、封箱(解箱)、for-each
    Java6:@Override
    Java7:Diamond 语法、try-with-resources
    Java8:Lambda 语法、可重复注解、类型注解、Stream

Java程序被编写在.java文件中,经过 javac compiler 编译成 .class文件(bytecodes,JVM的机器语言),由JVM实例运行。
因为JVM在不同的平台上有不同的实现,对Java程序隐藏平台差异性,因此Java程序编写一次就可以运行在不同的平台上,即Java程序有跨平台的特性。

平台:平台是运行程序的硬件或软件环境。一些最受欢迎的平台,如Microsoft Windows,Linux,Solaris OS和Mac OS。大多数平台都可以描述为操作系统和底层硬件的组合。

Java API

举例 代表类。

lang and utils

java.lang:
	注解: Annotation, 
	反射,动态代理: Type,InvocationHandler, 
	类加载: ClassLoader, 
	异常: NoSuchMethodException, 
	类型: Void
java.math:BigDecimal
java.util:
	并发: ThreadPoolExecutor,  concurrent+atomic+locks
	集合: Comparator
	Lambda: Function,Stream, 
	Matcher, EnumMap,Objects
java.time:LocalDateTime

func lib

java.io:File, Path, InputStream, Reader, Serializable
java.nio:ByteBuffer, Path, Charset, Channel
java.net:Socket, Inet4Address
java.sql:Statement, Connection
java.security:KeyPair
java.beans:BeanInfo, MetaData

bean

Serializable: objects to stream of bytes.
JavaBeans:
1. 元信息:描述Descriptor类 字段名Property;字段类型 Type;方法 Method;构造器Constructor 
2. 字段类型转换 PropertyEditor

POJO(Plain Ordinary Java Object) 简单的Java对象,对象只有setter/getter基本操作,没有复杂的业务操作。

常用三方包

apache.commons3
Lombok
Guava
Mapstruct
Hutool

JVM

jvm的使用 就是 启动参数 配置

Java书籍

Java编程思想_第5版_中文(gitee.com)_2020-07-30
《Effective Java (高效 Java) 第三版》 - 书栈网 · BookStack_2020-01-09
core java 12th
java8实战
深入理解Java虚拟机3

Java局限

Java组件有很多局限,才会不断更新版本,如日期时间类、并发工具;才会新生出这么多框架,比如Netty 封装NIO,Redis缓存数据。

Java 强类型 增强安全性,需要做很多类型转换,比如 Spring Data Binding;任何数据总要有个类型来承接它, Java反射 即便获取到Type信息,也无法实例化成类。

Java泛型匹配局限,泛型与反射。

出于编译安全,Java 枚举无法用在注解上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值