java 学习笔记 1/365 java基础知识

今天是2023年1月1日,绝佳的日子。

前几天正好在开始重学java,那就从今天开始写博客记录学习之路。

本科四年,工作三年,再加上去年九月开始读研,接触CS很久了。

希望这次可以从一个比较宏观的角度,扎实地学好java。

目前是先找了一个网课开始学(不想再啃大部头了,学C++那会就是看书,比较折磨)

后期会加上刷题,做项目,准备面试题。

每天学习量不求多,只求坚持。

每天都在认真追求知识上的进步,那么生活自然也就有了秩序感。

目标就是2023年连续365天打卡。

1. java与C对比

JAVA跨平台,C语言可移植性

可移植性:可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的 C 语言编译器和库,然后将源代码编译、连接成目标二进制文件之后即可运行

跨平台性:无需修改即可在任何一个平台上运行

原因:

C涉及到操作系统硬件资源的接口的,比如进程调度,网络通信等 ,这些接口均为每一个操作系统独有的,windows与 Linux 这些接口有差异,一旦C 程序中使用了这些接口,代码放到另外一个平台就无法编译通过了

只要是安装了JAVA虚拟机JVM的操作系统,就可以运行JAVA程序

2.java应用

JAVA2EE 服务器端

Hadoop 大数据

Andriod

3.从java到JVM涉及的工具库和API

4.第一个程序 Hello World!

编译:javac Hello.java

运行:java Hello

class name 要与文件名一致

public class Hello{
	public static void main(String[] agrs){
		System.out.print("Hello Word!");
	}
}

5.编译型 vs 解释型

高级语言分为编译型和解释型两类。

编译型语言指的是将通过编译器一次性全部编译成可执行文件,例如C,C++,Golang,Pascal。

特点:执行效率高(下一次运行,不需要再重复编译源代码)

跨平台性差(不同操作系统支持的函数名,数据类型不同)

闭源(有可执行文件就可以运行)

解释型语言指的是一边解释源代码,一边执行,只会解释用到的源代码,不会生成可执行文件。

例如python, javascript,PHP

特点:执行效率低(每一次运行,都需要再解释)

跨平台性好(不同的OS会有不同的解释器,解释器会生成对应的机器码,解释器屏蔽了平台间的不同)

开源(无法脱离开发环境,每次都需要解释)

OS一般都使用 C/C++ 实现(效率高),只有在应用层面(比如网站开发、批处理、小工具等)才会使用解释型语言。

java混合了这两种类型:

java通过编译器并不生成可执行文件,而是生成了一个class文件(字节码),接着再用解释器解释,在各个不同的平台上运行。这也就解释了之前提到的java的跨平台性是如何实现的。

 

结语:

写Hello World的时候想起了2015年刚上大一,在机房里,和蔼的陆老师手把手教我们写代码。

我还很执着地问他,为什么for循环一定要从0开始,明明从1开始,我的计数也是正确的。

陆老师直接奔溃了,大声喊道:“这是规矩!计算机的规矩!你不能从1开始!”

2016年大一下学期,java老师第一节课,一直和我们说Hello World!的重要性,说这可是学每一门语言的第一个程序。

可惜他教的实在太烂了,差点掐灭了当时我对计算机的热情。

早知当时,我就该在网上找个网课自己学。

每个年龄有每个年龄的风景,当时没学好java,找工作又误打误撞找了个C++,再写java竟然是七年后的今天了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值