Hello,今天呢,就聊聊java运行机制,多的啥也不说了,直接进入主题!
Java运行机制
理解java运行机制,首先需要理解java虚拟机的概念。java虚拟机(Java Virtual Machine简称 JVM)是运行所有
Java程序的抽象计算机,是一个想象中的机器,是Java语言的运行环境,在实际的计算机上通过软件模拟。
安装JDK之后就包含java虚拟机。对于不同的操作系统就有不同的虚拟机。java虚拟机屏蔽了底层平台的差
别,可以实现“一次编译,到处运行”,真正实现了程序的可移植性。
运行java程序需要经过两个阶段:编译和解释,编译实现源程序(*.java文件)生成字节码文件(*.class文件)
,解释通过java虚拟机将字节码文件执行出结果,我呢画个简陋的具体过程:
编译 执行 ----------JVM for UNIX
*.java ---->*.class----->----------JVM for Windows
----------JVM for Other
应该能看懂哈(毕竟我也能看懂\哈哈)
这个呢就是java的运行过程。
Java基本特点
1.简单性:
人们希望构建一个无需专业训练就可以进行编程 的语言,并且符合当今标准。因此,尽管人们发现C++
不太适用,但在设计java的时候还是尽可能接近C++,以便于系统更容易理解。java剔除了C++中许多很
少使用、难以理解、易混淆的特性。的确,java语法是C++的一个“纯净”版本。
简单的另一方面是小。java的目标之一是支持开发能够在小型机器上独立运行的软件。在当时,这可以说
是不小的成就。由于不断地发展,现在已经有一个独立的具有较小类库的java微型版本(Java Micro Edition)
用于嵌入式设备。
2.面向对象:
简单来讲,面向对象设计是一种程序设计技术。它将重点放在数据(即对象)和对象的接口上。用木匠
打一个比方:一个“面向对象”的木匠始终关注的是所制造的椅子,第二位才是所使用的工具;一个“非面
向对象”的木匠首先考虑的是工具。java语言是面向对象的语言。
3.网络技能:
java的网络能力强大且易使用。任何使用其他语言进行网络编程的人都会惊呼java竟然把类似打开socket
连接这类繁重的任务变得如此简单。
4.健壮性:这个特性非常实用。java语言能够检测许多其他语言中仅在运行时刻才能检测出来的问题。比如C/C++
中的内存泄漏,在java中永远不会发生,所以java是绝对安全的。
5.安全性:
那就说到了安全性。从一开始,java就设计成能够防范各种袭击,如:
——运行时堆栈溢出。如蠕虫等病毒常用的袭击手段。
——在自己的处理空间之外破坏内存。
——未授权读写文件。
许多安全特性相继不断加入到java中。自从java问世以来,java就有了数字签名类的概念。通过数字
签名类,可以确定类的作者。如果信任这个类的作者,这个类就可以在机器上有更多的权限。
6.可移植性:
与其他语言不同,java规范中没有“依赖具体实现”的地方。基本数据类型 的大小以及有关算法都做了明
确的说明。例如:java中int永远为32位的整数,而在C/C++中,int可能是16、32位,也有可能指定其他
的大小。java实现了在Windows、Mac OS、Linux平台的移植问题,在不需要修改代码的情况下,实现
自由迁移。
当然,java除了以上特性,还有很多其他的特性,知道的小伙伴可以告诉我哈!
那现在还有些时间,可以把java的变量命名规范说一哈子~~~~/鼓掌鼓掌,毕竟像我这么好的人寥寥无几啦!
java变量
变量顾名思义就是变化的量,代表变量的值是可以不断变化的。比如:年龄,性别,身高等,特别注意的还是
变量中的值是不可以改变的,另外,变量名和变量值是两个不同的概念。
在java中,使用变量时需要声明变量,在声明变量时需要确定变量名,那么变量名的命名规则是什么呢?等一
哈子就给你说哈。算了,现在说吧:首字母为字母、下划线“—”和符号“¥”(咦,囊个是这样式的,不重要,反
正是一样的符号),后面是字母、数字、下划线和符号“¥”构成的序列。注意,在命名是要确保所有的字符都
是有意义的(不然被打死了不要来找我哈),并且大小写敏感。变量名的长度没有限制。在命名变量时如果只
有一个单词,则都是小写,如果有两个或以上单词,则第一个单词小写,后面各单词的首字母大写。另外,变
量名不能使用java关键字。那关键来了,我要放大招了!
java的关键字主要有:
基本数据类型:
byte,short,int,double,long,float,boolean,char
循环关键字:
do,while,for,break,continue
分支关键字:
if,else,switch,case,default,break
方法、变量及修饰符:
private,public,protected,final,static,abstract,synchronized,volatile,strictfp
常量:
false,true,null
方法:
return,void
包:
package,import
异常处理:
try,catch,finally,throw,thows
对象:
new,extends,implement,super,class,instanceof,this
反正还有很多哦,大家慢慢挖掘吧,这时估计有人看的脑壳都晕了,没事,慢慢来就好,毕竟咱还是一步
一步走过来了。另外,虽然JDK1.5之后可以中文命名,不过还是不建议使用哈!
那么一个人的信息有很多,对应的值也有很多,那这些值由什么来决定呢?
哈哈,答案是数据类型!要让变量存储不同的数据由数据类型来决定,那么不同的值就有不同的数据类型。
那么下面会继续聊聊java的数据类型!
(好累哦打这个字,等我休息一哈子,陪我女朋友聊聊天/坏笑
估计有人问我,你一个程序员怎么找的到女朋友哦!嘿嘿,,,因为我帅啊/哈哈哈
等我回来哈!恩,,现在15.28分)
。。。
。。。
。。。
Hello,我回来啦!给她发消息没理我,估计在很认真的学习吧。她最近去学了个美甲,我说为啥子去学这个呀?
想了一哈子,她说女生的钱比较好赚点/哈哈,这我能说啥/掩面
好啦,进入正题,聊聊java的数据类型:
java数据类型
1.整型:
类型 存储要求 取值范围
int 4字节 -2147483648------2147483647
short 2字节 -32768-----32767
long 8字节 -9223372036854775808-----9223372036854775807
byte 1字节 -128--127
通常情况下,int最常用。但如果表示星球数量,就需要long,其他类型根据具体要求的取值来决定采用数据类型。
2.浮点类型:
类型 存储要求 取值范围
float 4字节 -2的31次方-1--2的31次方-1
double 8字节 -2的63次方-1--2的63次方-1
float为单精度浮点数,double为双精度浮点数。绝大部分应用程序采用double类型。因为,很多情况下,float类型
的精度很难满足需求。如可以表示一个公司员工的年薪,但表示公司的收入就不够用了。
3.char类型:
char类型用于表示单个字符,采用单引号表示。如‘a’,而‘a’是字符串。char类型采用的编码格式为Unicode编码,
一个字符占据两个字节。在c语言中字符均采用ASCII编码格式,该编码格式占据一个字节。采用Unicode编码可
实现统一编码以及多语言程序的实现。
4.布尔类型
布尔(boolean)类型有两个值:true、false,用来判定逻辑条件。
5.变量初始化:
要想对一个已经声明过的变量进行赋值,就需要将变量名放在等号左侧,相应取值的java表达式放在等号右侧。
如:int a;
a=1;
也可以放在同一行:
int a=1;
也可以放在代码中任意地方,但是建议尽可能声明在第一次使用的地方,这是比较优良的程序编写风格!
6.常量:
常量的值是不变的,在java中,利用关键字final声明:
如:final a=1;
关键字final表示这个变量只能被赋值一次,一旦赋值就不能更改。
7.数据类型转换:
自动转换类型:
规则如下:
1.如果两个操作数中有一个是double,另一个操作数也转换成double
2.否则,如果其中一个操作数是float,另一个操作数也转换成float
3.否则,如果其中一个操作数是long,另一个操作数也转换成long
4.否则,两个操作数都会转换成int
例:`public class Type{
public static void main(String[] args){
float a=10;//将整型自动转换为浮点数
double b=10.0;//将带小数的常量转为double类型
System.out.println("a="+a);
System.out.println("b="+b);
}
}`
输出效果为:a=10.0;b=10.0
不会自动进行类型转换时,这时就需要强制转换,但是这种转换会存在精度丢失。
强制转换:
语法:数据类型 变量=(数据类型)变量
double x=9.99;
int a=(int)x;//这样变量a的值为9,强制类型转换通过截断小数部分将浮点数转为整数。
例:`public class Type2{
public static void main(String[] args){
float a=10F;
int b=(int)10.0;
System.out.println("a="+a);
System.out.println("b="+b);
}
}`
输出:a=10.0;b=10;
...
...
...
好啦!那大概今天就先到这,我女朋友找我啦!今天聊了java的运行机制,及基本特点还有java变量及数据类型!
明天如果有时间会继续从基础部分的基本语法开始,小伙伴们Bye Bye咯~~~~~~~~