1.面向过程&面向对象

  • 面向过程

    • 优点:性能好,单片机、嵌入式开发、Linux/Unix一般采用;
    • 缺点:不易维护、复用、拓展;
  • 面向对象
    • 优点:易维护、复用、拓展,有封装、继承、多态性的特性,便于低耦合,使系统更灵活,更易于维护;
    • 缺点:性能不如面向过程

2.Java语言的特点

  1. 简单易学;
  2. 面向对象(封装、继承、多态);
  3. 平台无关性;
  4. 可靠性;
  5. 安全性;
  6. 支持多线程;
  7. 支持网络编程;
  8. 编译与解释并存;

3.JVM JDK和JRE

  • Java虚拟机(JVM)

    • Java虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果
    • 在 Java 中,JVM可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java程序无须重新编译便可在多种不同操作系统的计算机上运行。
    • 我们需要格外注意的是 .class->机器码 这一步。在这一步 JVM 类加载器首先加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对比较慢。而且,有些方法和代码块是经常需要被调用的(也就是所谓的热点代码),所以后面引进了 JIT 编译器,而JIT 属于运行时编译。当 JIT 编译器完成第一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。而我们知道,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什么经常会说 Java 是编译与解释共存的语言。
    • HotSpot采用了惰性评估(Lazy Evaluation)的做法,根据二八定律,消耗大部分系统资源的只有那一小部分的代码(热点代码),而这也就是JIT所需要编译的部分。JVM会根据代码每次被执行的情况收集信息并相应地做出一些优化,因此执行的次数越多,它的速度就越快。JDK 9引入了一种新的编译模式AOT(Ahead of Time Compilation),它是直接将字节码编译成机器码,这样就避免了JIT预热等各方面的开销。JDK支持分层编译和AOT协作使用。但是 ,AOT 编译器的编译质量是肯定比不上 JIT 编译器的。
    • 总结:Java虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。
  • JDK和JRE
    • DK是Java Development Kit,它是功能齐全的Java SDK。它拥有JRE所拥有的一切,还有编译器(javac)和工具(如javadoc和jdb)。它能够创建和编译程序。
    • JRE 是 Java运行时环境。它是运行已编译 Java 程序所需的所有内容的集合,包括 Java虚拟机(JVM),Java类库,java命令和其他的一些基础构件。但是,它不能用于创建新程序。
    • 如果你只是为了运行一下 Java 程序的话,那么你只需要安装 JRE 就可以了。如果你需要进行一些 Java 编程方面的工作,那么你就需要安装JDK了。但是,这不是绝对的。有时,即使您不打算在计算机上进行任何Java开发,仍然需要安装JDK。例如,如果要使用JSP部署Web应用程序,那么从技术上讲,您只是在应用程序服务器中运行Java程序。那你为什么需要JDK呢?因为应用程序服务器会将 JSP 转换为 Java servlet,并且需要使用 JDK 来编译 servlet。

4.Java和C++

  • 都是面向对象的语言,都支持封装、继承和多态
  • Java 不提供指针来直接访问内存,程序内存更加安全
  • Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
  • Java 有自动内存管理机制,不需要程序员手动释放无用内存

5.主类

  一个程序中可以有多个类,但只能有一个类是主类。在 Java 应用程序中,这个主类是指包含 main()方法的类。而在 Java 小程序中,这个主类是一个继承自系统类 JApplet 或 Applet 的子类。应用程序的主类不一定要求是 public 类,但小程序的主类要求必须是 public 类。主类是 Java 程序执行的入口点。

  简单说应用程序是从主线程启动(也就是 main() 方法)。applet 小程序没有main方法,主要是嵌在浏览器页面上运行(调用init()线程或者run()来启动),嵌入浏览器这点跟 flash 的小游戏类似。

6.字符型常量&字符串常量

  1. 形式上: 字符常量是单引号引起的一个字符; 字符串常量是双引号引起的若干个字符
  2. 含义上: 字符常量相当于一个整形值( ASCII 值),可以参加表达式运算; 字符串常量代表一个地址值(该字符串在内存中存放位置)
  3. 占内存大小 字符常量只占2个字节; 字符串常量占若干个字节(至少一个字符结束标志) (注意: char在Java中占两个字节)

7.helloworld

package day_01;//包名public class helloworld {//类名:helloworld,必须与文件名一致public static void main(String[] args) {//主函数(主方法),这里是静态System.out.println("hello world");//输出语句
    }}

8.保留字

9.标识符

由英文大小写字母、数字、$、_(下划线)组成

  • 不能以数字开头
  • 不能是Java中的关键字
  • 区分大小写
  • 类每个单词必须首字母大写
  • 方法、变量第二个单词开始首字母大写
  • 常量每个字母都大写(用_隔开)
    • 单行注释,格式: //注释文字
    • 多行注释,格式: /* 注释文字 */
    • 文档注释,格式:/** 注释文字 */
  • 进制
    • 二进制,由0,1组成。以0b开头
    • 八进制,由0,1,…7组成。以0开头
    • 十进制,由0,1,…9组成。整数默认是十进制的
    • 十六进制,由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头

 

  

转载于:https://www.cnblogs.com/alex123/p/10644038.html

java_day01相关推荐

最新文章

  1. 静态联编与动态联编之virtual的作用
  2. 【Flutter】Flutter 拍照示例 ( 拍照并获取照片源码示例 | image_picker 0.7.2+1 | Flutter 最新 SDK 安装 )
  3. jquery键盘事件全记录
  4. 根据屏幕分辨率获取css,根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码...
  5. Unable to Connect: sPort: 0 C# ServiceStack.Redis 访问 redis
  6. ASP.NET Core Cookie SameSite
  7. 数据仓库介绍与实时数仓案例
  8. linux中开启514端口,linux中开启指定端口
  9. android按键事件响应函数,android 响应按键按下的onKeyDown()函数?
  10. FreeRTOS基础以及UIP之协程--C语言剑走偏锋
  11. 安卓actionBar上无法显示搜索按钮如何解决
  12. 小米手机刷机工具MiFlash怎么用
  13. javascript常用方法,解决浏览器中Backspace按键回退页面问题
  14. Android 360开源全面插件化框架RePlugin 实战
  15. Ubuntu安装Gcc时,显示“无法解析域名cn.archive.ubuntu.com”,如下方式可解决
  16. iOS 跳转淘宝、天猫、京东商品详情页
  17. java后台 apiV3 对接微信app支付
  18. put: File COPYING could be replicated to 0 nodes instead of minReplication.There are 0 datanodes解决方案
  19. 读《深入理解计算机系统》
  20. 【Python编程:从入门到实践】第十八章和第十九章练习题(Django创建网站)

热门文章

  1. 【Spring MVC】学习笔记汇总
  2. npm run dev时报错:Node Sass does not yet support../nodejs与node-sass版本冲突
  3. 读书笔记_打开量化投资的黑箱09
  4. 最近给公司撸了一个可视化大屏
  5. 被阿里带火的数据中台,不靠这三个阶段绝对失败
  6. python爬取+BI分析5000条内衣数据,发现妹子最爱这款文胸
  7. stream().map().collect()用法
  8. 昭阳k42-80可以装linux么,华硕K420JC 双显卡 本本 能装ubuntu吗
  9. java web结束线程_java – 即使在Websphere中停止应用程序后,线程仍会继续运行
  10. java web 收发邮件_Java总结(五)之实现javaweb发送邮件