为什么要去学习底层的知识

本文探讨了学习底层知识对程序员的重要性,通过实例解释了JavaScript执行顺序、Java中Integer的比较以及静态内部类实现的单例模式。作者强调,随着经验积累,会越发意识到大学时期学习的操作系统、计算机网络和数据结构等基础知识的价值。建议初学者由浅入深学习,并利用大学时间扎实基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要去学习底层的知识

我从前有一个大的误区,认为学习一些框架知识,能够实现业务功能就可以了.
完全没有必要去深挖底层.但是这两天,慢慢发现去了解底层知识的重要性.

有些东西,只有在遇到了,被困住很久,最后解决了.印象才会深.
下面,我会记录一些我在平常学习和工作中遇到的有关底层(对于我来讲…)

js中执行顺序

有个同学,在编写js时遇到了,一个问题.他的js代码在执行一个函数时,出现undefined的错误.
下面是一个示例

nihao();
hello();//hello 是无法执行的
function nihao(){
	alert('nihao');
}

var hello = function(){
	alert('hello');
}

这个问题,当时令我很困惑,我有些迷茫,这是为什么?
都是定义的方法,一个可以执行,另一个就不能执行.

后来我才了解到浏览器会先对js代码进行预处理(编译),然后再执行.
后来看了一些资料,才发现了真正的问题.下面是真正执行代码的顺序.

function nihao(){
	alert('nihao');
}
var hello;

nihao();
hello();

var hello = function(){
	alert('hello');
}	

js中的执行顺序

2018-12-13

java中Integer的比较

今天,在看阿里的Java开发手册中,看到一个以前没有注意到的细节
Integer这种包装类在比较大小时,应该使用equal() 不要直接 == 判断.
因为在-128 到 127 区间内的 Integer 值可以直接使用复用已有的对象
而这个区间之外的所有数据,则会在堆上产生,并不会复用已有对象.所以下面会输出 false

Integer num1 = 1200;
Integer num2 = 1200;

System.out.println(num1==num2);

2018-12-14

静态内部类实现单例模式

类加载是有触发条件的,懒加载的感觉.
一般,只有到用到这个类时才会被加载到JVM中

一个类创建实例对象时

  1. 将类装载到JVM中
  2. 执行静态字段的初始化和执行static{}中的代码
  3. 执行父类的构造方法.
  4. 执行构造方法,返回实例

下面的单例模式中,只有当执行到 getInstance() 才会去加载静态内部类.而且类的加载是被上锁的,所以它是线程安全的.

package singleton;

public class Singleton {

	private Singleton() {}
	
	private static class LazyHolder{
		private static final Singleton INSTANCE = new Singleton();
	}
	
	public Singleton getInstance() {
		return LazyHolder.INSTANCE;
	}
	
}

2018-12-16


时隔良久

2020年3月7日

做程序员的时间越长越觉得在大学里学习的知识很重要;
例如操作系统,计算机网络,数据结构等;

但是,为什么当时是意识不到的呢?

我认为学习编程应该是由浅入深的,先学习容易学习的内容;
例如,学一门编程语言,JAVA,C语言等;

在了解一门语言之后,用这门语言做一个web的小项目;
在实践中,你会发现一个请求从客户端到服务器,在这里面会
涉及到计算机网络;

HTTP协议,那你自然会好奇,到底是怎样的传输过程;能够实现
程序端到端的传输;又是如何通过网线传输的数据;

在这期间的过程中,会有什么样子的问题:例如,传输失败了,传输的慢了,这些问题是怎么解决的?

然后,结合在大学所学的知识,去思考;

当然,大学的课程时间短,知识多; 老师讲的不够仔细也是正常的;
所以,要我们去课下学习; 哈哈,当初我就没有! 所以导致现在比较菜;

不过,工作之后,对编程的不断思考,加上对程序的好奇;自然会去主动学习一些底层知识;

如果,你还在上大学; 以后想从事计算机行业,最好利用好大学的时间来学好基础知识; 这是根基;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值