JAVA基础(一)——什么是java
1.1 java属于解释执行还是编译执行
首先,我们要知道解释执行和编译执行的区别:
解释执行——程序运行时,将源文件逐行解释为机器语言执行
编译执行——程序运行前,将源文件全部编译为机器语言再执行
而Java是一种特殊的解释型语言(首先将java的类文件编译成jvm能识别的字节码文件,然后针对热点方法,利用JTT即时编译技术,编译执行,而对于非热点方法,采用的则是解释执行),整体过程如下:Java文件在运行前先被编译(工具:javac.exe)成字节码文件(class文件),然后在虚拟机中被解释(工具:java.exe或javaw.exe(非阻塞执行))运行。
1.2 java的语言特性
java属于面向对象语言,具备封装,继承,多态三大特性。
封装:每个类不对外暴露其构造和实现,只展示自身的功能与作用
继承:同一父类的子类共同持有父类的公有(非private)资源
多态:同一父类的子类对于父类公有方法或资源,可以具备不同的表达方式
1.3 java语言的版本特性
a: JDK1.1
1、反射
2、内部类
b: JDK1.2
1、集合API(Map,List,Set)
c: JDK1.4
1、IO API
2、文本正则表达式
3、xml
4、日志Api
d: JDK1.5
1、自动装箱与拆箱:
2、枚举(常用来设计单例模式)
3、静态导入
4、可变参数
5、内省
e: JDK1.6
1、Web服务元数据
2、脚本语言支持
3、JTable的排序和过滤
4、更简单,更强大的JAX-WS
5、轻量级Http Server
6、嵌入式数据库 Derby
f: JDK1.7
1、switch中可以使用字串了
2、运用List tempList = newArrayList<>(); 即泛型实例化类型自动推断
3、语法上支持集合,而不一定是数组
4、新增一些取环境信息的工具方法
5、Boolean类型反转,空指针安全,参与位运算
6、两个char间的equals
7、安全的加减乘除
8、map集合支持并发请求,且可以写成 Map map ={name:"xxx",age:18};
g: JDK1.8
1、允许在接口中有默认方法实现
2、Lambda表达式
3、函数式接口
4、方法和构造函数引用
5、Lambda的范围
6、内置函数式接口
7、Streams
8、Parallel Streams
9、Map
10、 时间日期API
11、Annotations
12、Optional(这是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。)
h:JDK1.9
1、Jigsaw 项目;模块化源码
2、简化进程API
3、轻量级 JSON API
4、钱和货币的API
5、改善锁争用机制
6、代码分段缓存
7、智能Java编译, 第二阶段
8、HTTP 2.0客户端
9、Kulla计划: Java的REPL实现
1.4 Java语言的平台分类
1.5 jdk文件目录
-bin目录: JDK开发工具的可执行文件
-lib目录: 开发工具使用的归档包文件
-jre: Java 运行时环境的根目录,包含Java虚拟机,运行时的类包和Java应用启动器,
但不包含开发环境中的开发工具
-demo: 含有源代码的程序示例
-include: 包含C语言头文件,支持Java本地接口与Java虚拟机调试程序接口的本地编程技术。
1.6 JVM、JRE、JDK关系
1.2.1 什么是跨平台?
平台:指的是操作系统(Windows,Linux,Mac)
跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行
原理:不同的编译器对于不同平台,获取后的class文件在相同JVM中运行
1.2.2 JVM、JRE 、JDK说明
A:什么是JVM
JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台
B:什么是JRE(运行环境)
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
JRE:JVM+类库+运行工具(java.exe)。
C:什么是JDK(开发环境)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe) 运行工具(java.exe) 打包工具(jar.exe)等
D:为什么JDK中包含一个JRE
JDK若无JRE则缺少虚拟机,而开发完的程序,需要运行一下看看效果。
E:JDK,JRE,JVM的作用和关系
JDK包含JRE 和开发工具包 JRE包含 核心类库和JVM
F:环境配置注意事项
JRE不可以安装在JDK内部(javac无法执行),CLASSPATH最好不配置
1.7 JAVA与其他语言对比
1.3.1 JAVA与C对比
1、JAVA面向对象,C面向过程
2、JAVA跨平台,C需要重新编译
3、JAVA没有指针,无法高效运算
4、JAVA能自动垃圾回收
5、JAVA无法直接管理内存
6、JAVA没有预处理器
1.3.2 JAVA与C++
1、JAVA采用值传递
2、JAVA不能多继承
3、JAVA无法重载运算符
1.3.3 JAVA与PHP
1、JAVA是静态语言,PHP是动态语言
2、JAVA支持多线程,PHP不支持
总结:PHP快捷 、C高性能、JAVA安全稳定
1.8 java为什么能火
说性能,java弱于C,说编码复杂度,java不如py,当为啥java能稳坐编程语言宝座这么多年?首先我们从学习者角度从发,学习java,我们拥有丰富的资源,用人单位聘用java人数也最多,而且java具备丰富的生态系统,几乎每个功能点,都有相应的解决方案,不需要自己费心费力去创造。再从公司角度出发,java稳定,安全可靠,而且采用JIT技术后性能与C比也弱不了多少,而且java的项目结构,更适合团队协作,以及后期扩展。
由此,综合考量,java更加适合想要从事编程的人来学习,也适合公司进行项目开发管理,所以java必须火。
JAVA基础(一)——什么是java相关推荐
- java基础知识之初识java
java基础知识之初识java JAVA基础课后总结 一 1.计算机程序 定义:程序(Program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合. 2.指令 定义:指令就是指示机 ...
- Java 基础面试题,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- Linux中的Java类,Java基础入门学习-Java中类的属性
Java基础入门学习-Java中类的属性 发布时间:2006-05-27 00:46:15来源:红联作者:WWW Public.private.protected显示了三种类中的属性和服务的类型,pu ...
- Java基础第一讲:Java的故事和Java编程环境搭建
{ Android学习指南 } 适于自学的ANDORID学习指南,基于ANDROID 2.2.2.3.3及3.0版本讲解 <ANDROID学习指南>目录 RSS Java基础第一讲:Jav ...
- Java七十四: Java基础/核心知识总结 — — “Java千字文”
Java基础/核心知识总结 - - "Java千字文" Java基础/核心知识笔记终于完结,从Java语言诞生到jdk8新特性,共计74篇博文,43幅自制插图,35张表格,7万6千 ...
- 【Java基础知识 1】Java入门级概述,让阿里架构师告诉你为什么要分库分表
1998年12月8日,第二代Java平台的企业版J2EE发布. 1999年4月27日,HotSpot虚拟机发布. 2005年6月,在Java One大会上,Sun公司发布了Java SE 6.此时,J ...
- Java基础之一:初识Java
Java基础系列文章目录 Java基础之一:初识Java Java基础之二:Java语言基础 文章目录 Java基础系列文章目录 前言 一.Java概述 二.Java面向对象特性 1.简单 2.面向对 ...
- java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)
最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会 直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有"01 ...
- java基础(七) 深入解析java四种访问权限
戳上面的蓝字关注我们哦! 精彩内容 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 java项目练习精选 引言 Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4 ...
- java 基础面试 英文_[Java面试] 面试java基础总结大全
原标题:[Java面试] 面试java基础总结大全 基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. ...
最新文章
- 比特币SPV节点启动流程图
- Top Competitors(连接查询)
- 中国稀土永磁材料市场发展态势及产销需求规模预测报告2021版
- 我看百度和Google
- 微信小程序生成小程序码,如何在开发版本调试?
- final修饰的类有什么特点?
- 办公小技巧,OmniGraffle绘制流程图方法分享
- javascript轻松解决前端数据排序(互换,置顶,上移,下移),快收藏吧
- WEBPACK+ES6+REACT入门(1/7)-创建webpack4.x项目
- spring切点表达式提取jdk版本与aspectjweaver版本不匹配
- android开机固定程序,Android实现开机自启动某个程序
- mac android使用WiFi安装应用调试程序
- java调用百度Ocr识别以及报错SDK108的解决办法
- SAP BW4基础入门篇
- DSPE-PEG7-Mal新研博美 小分子PEG的循环节可以做到1-36个
- wordpress配置菜单栏
- 【报错及解决】Variable w already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally
- 旅行社如何通过抖音短视频获客?
- 铁道部新客票系统设计(三)
- Java 集合深入理解(10):Deque 双端队列
热门文章
- s32k118CAN通信问题
- choice量化交易数据接口引发的问题
- 计算机课电脑如何提网速,教大家怎么调网速,让你的电脑像飞速运转。
- oracle 统计同比 环比,oracle求同比,环比函数(LAG与LEAD)的详解
- 用中文把玩Google开源的Deep-Learning项目word2vec
- Xshell连接centOS7
- 网络编程培训之一 编程实现IP/TCP/UDP报文
- 从0开始学习 GitHub 系列之「01.初识 GitHub」----转载自stormzhang 原创文章
- 如何使用Java制作网课搜题软件?我来教你,so easy
- 垃圾分类游戏HTML,垃圾分类宣传进村居,趣味游戏中学分类