We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
静态类型:在编译时就检查数据的类型,即在声明所有变量的时候,就必须明确的指定变量的类型(int、float、double)
动态类型:在运行时才确认数据的类型,即在声明所有变量的时候,不需要指定变量的类型,在第一次赋值的时候,程序会指定它的数据类型
优缺点: 静态类型可以在编译时就发现因为数据类型导致的出错,让你编写的时候更加的放心,而动态类型写法灵活,但是必须要在运行时才可以发现错误。
强类型:变量的类型不能随意更改,一旦一个变量确定了某个类型,除非强制更改,那么它就一直是这个类型
弱类型:数据类型可以被忽略的语言,一个变量可以赋值为不同的类型
我们写的代码对于计算机可能就是一堆火星文,这个时候就需要一种东西来把我们写的代码翻译成计算机可以读懂的代码,但是怎么翻译,什么时候翻译的区分就产生了编译器和解释器
编译器:在程序编译的时候(运行前),会把我们所有的代码编译成可执行的文件(计算机看得懂的)
解释器:在程序runtime的时候(运行时),一句句的解释成可执行的文件,当再次运行的时候,又需要重新翻译。
那么问题来了,对于Java是什么类型的语言呢?对于JavaScript而是什么语言呢?
Java:静态类型(在编译时就确定了变量的类型)和强类型语言(变量不能随意更改类型),解释型的语言: Java语言首先通过编译器,得到.class文件,然后其虚拟机对.class文件进行逐条解释执行。因此我我认为Java本质上一种解释型的语言, 但是需要先经过编译器生成.class,为什么要这样做,个人认为是为了Java的跨平台特性。与Java不同的是,有些语言是直接翻译成机器码的(比如C#),这种是典型的编译型。
JavaScript: 动态类型(运行时才确定)和弱类型语言(变量可以随意更改类型)。
从之前我们讲解了计算机的构成,知道计算机中CPU是执行和发出每条指令,但是执行的时候需要的数据来源则是放到主存中的。那么cpu和主存的读取速度就很重要了。
但是随着CPU的高速发展,CPU的执行速度越来越快,但是从内存中读取和写入数据的过程并没有提升的很快,这样就导致了CPU每次在操作内存的时候都要等待很长的一段时间,为了减少这个等待的数据,就在CPU和内存中添加了高速缓存
The text was updated successfully, but these errors were encountered:
update 解释器
Sorry, something went wrong.
No branches or pull requests
语言的类型和缓存
1. 静态类型 vs. 动态类型
静态类型:在编译时就检查数据的类型,即在声明所有变量的时候,就必须明确的指定变量的类型(int、float、double)
动态类型:在运行时才确认数据的类型,即在声明所有变量的时候,不需要指定变量的类型,在第一次赋值的时候,程序会指定它的数据类型
优缺点: 静态类型可以在编译时就发现因为数据类型导致的出错,让你编写的时候更加的放心,而动态类型写法灵活,但是必须要在运行时才可以发现错误。
2. 强类型 vs. 弱类型
强类型:变量的类型不能随意更改,一旦一个变量确定了某个类型,除非强制更改,那么它就一直是这个类型
弱类型:数据类型可以被忽略的语言,一个变量可以赋值为不同的类型
3. 编译器 vs. 解释器
我们写的代码对于计算机可能就是一堆火星文,这个时候就需要一种东西来把我们写的代码翻译成计算机可以读懂的代码,但是怎么翻译,什么时候翻译的区分就产生了编译器和解释器
编译器:在程序编译的时候(运行前),会把我们所有的代码编译成可执行的文件(计算机看得懂的)
解释器:在程序runtime的时候(运行时),一句句的解释成可执行的文件,当再次运行的时候,又需要重新翻译。
4. 对于java
那么问题来了,对于Java是什么类型的语言呢?对于JavaScript而是什么语言呢?
Java:静态类型(在编译时就确定了变量的类型)和强类型语言(变量不能随意更改类型),解释型的语言: Java语言首先通过编译器,得到.class文件,然后其虚拟机对.class文件进行逐条解释执行。因此我我认为Java本质上一种解释型的语言, 但是需要先经过编译器生成.class,为什么要这样做,个人认为是为了Java的跨平台特性。与Java不同的是,有些语言是直接翻译成机器码的(比如C#),这种是典型的编译型。
JavaScript: 动态类型(运行时才确定)和弱类型语言(变量可以随意更改类型)。
缓存
1. 为什么要有缓存
从之前我们讲解了计算机的构成,知道计算机中CPU是执行和发出每条指令,但是执行的时候需要的数据来源则是放到主存中的。那么cpu和主存的读取速度就很重要了。
但是随着CPU的高速发展,CPU的执行速度越来越快,但是从内存中读取和写入数据的过程并没有提升的很快,这样就导致了CPU每次在操作内存的时候都要等待很长的一段时间,为了减少这个等待的数据,就在CPU和内存中添加了高速缓存
2. 缓存的特点和交互
The text was updated successfully, but these errors were encountered: