简单性、跨平台性、分布性、安全性、健壮性、平台独立与可移植性、多线程、动态性、面向对象的编程语言、支持垃圾自动收集处理等,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用等多个系统中。
编译型——c语言
解释型——html
编译型和解释型的结合——java
java运行原理源程序进行编译形成字节码文件在一台电脑进行解释程序
java最核心的部分就是虚拟机JVM
新建Hello.java文件
public class Hello{
public static void main(String[] args){
System.out.println("Hello Wordld!");
}
}
cmd运行javac Hello.java编译后形成字节码.class 运行java Hello
但是对于以上程序需要注意的几点就是
1>程序类的定义:类是我们Java中的基本单位,在所有的java程序中都是以类的形式存在的,在java中类的定义有两种
public class 类名称{}:在一个*.java文件中只能有一个public class ,运行时文件名必须和类名一致
class 类名称{}:在一个*.java文件里面可以使用class定义多个文件,在编译之后形成不同的**.class文件
但是在类名定义的时候有一个约定要求每一个单词的首字母必须大写即TestDemo,文件名称必须与类名称一致
2>信息输出:在屏幕上面输出的信息有两种形式一个是输出换行System.out.println()和输出不换行System.out.print()
3>主方法:
public class DeomTest(){
public static void main(String[] args){
//主方法模板
}
}
即使现在不在.class生成的目录中也可以执行该目录下的.class文件,这个时候我们必须通过CLASSPATH来控制SET CLASSPATH=f:\java\javabase\day01
如果你的classpath设置的目录很多很乱的话,对我们的程序解释执行很不方便,采用默认的机制:从当前类所在的路径进行类的加载,我们可以将CLASSPATH的内容设置为“.”
CLASSPATH是一个非常重要的概念,但是现在对其有个基本的认识,后期对CLASSPATH有更深的认识。
单行注释://注释内容;
多行注释:/注释内容/”
文档注释:/*文档注释标记/
程序是一个逻辑的集合,所以每一个逻辑体都应该有自己的标记,例如在程序之中应该有一个标记例如:在程序中定义变量、定义常量、定义类名称和方法名称都有自己的要求。
在JAVA中标识符的命令如下:由字母、数字、_、$组成,其中不能以数字开头、不能使用Java中的保留字(关键字)
个人建议:标识符采用有意义的简单命名,如student_age、age;
"$"不要在代码中,因为其有特殊含义
在所有的程序之中都会有一个特殊的文本标记得到信息,这样的信息我们一般称为叫关键字
但是对于以上的关键字有以下几点说明:
1.java中有两个未使用到的关键字goto、const;
2.java中有三个特殊含义的单词(不算关键字):null,true,false;
3.JDK1.4之后追加了assert关键字
4.DK1.5之后追加了enum关键字
程序就是一场数字游戏。
基本数据类型:
|-数值类型:表示整数和小数;
|-整型:byte、short、int、long -》 默认值是:0;
|-浮点型:float、double -》 默认值是:0.0;
|-字符型:char -》默认值是:’\u0000’;
|-字符串型:stinrg -》默认值是:
|-布尔型:boolean -》默认值是:false
引用数据类型:数组、类、接口 -》默认值是:null
给出几个使用原则:
1>描述整形就是要使用int,描述小数就要使用double;
2>long这种数据类型一般会描述日期时间、内存或文件大小(字节)
3>如果需要进行编码转换或者进行二进制数据传输,使用byte(-128~127)
4>char一般在描述中文的时候使用到
5>在描述程序逻辑的时候是使用
关于变量得到命名要求:第一个单词的字母小写,而后的每个单词的首字母大写,例如maxValue
public class Hello{
public static void main(String[] args){
int maxValue = Integer.MAX_VALUE; //取得最大值
int minValue = Integer.MIN_VALUE; //取得最小值
System.out.println(maxValue); //2147483647
System.out.println(minValue); //-2147483648
System.out.println(maxValue +1); //数据溢出 (最小值)2147483647
System.out.println(minValue - 1); //数据溢出 (最大值)-2147483648
}
}
出现该问题:打开记事本-》文件-》另存为-》选择ANSI编码保存
使用long解决int数据溢出的问题
在使用此类方式处理之前请一定注意一个继续使用int进行计算的一个问题,计算结果依然会溢出,原因是先进行等号右边的int类型运算,将运算的结果赋值给long类型,所以说还是会溢出,解决办法就是,将其中的一个变量类型进行扩充,而扩充有两种是实现方式:
|-实现方式一:直接将int变量的内容赋值给long类型变量
|-实现方式二:直接将某一个int变量直接变为long类型变量
System.out.println(11 + l1); 面试区分1 和 l的细微差别
在之前所有的数据类型都有其默认值,但默认值在方法(主方法)声明中无效
有两种解决方案:一种是在是使用前进行赋值,另外一种是定义变量的时候进行赋值。但是在最早版本JDK时会出现问题,推荐使用第二种方式进行赋值。
double可以保存的数字是最大的,也就是double可以保存全宇宙中最大的有意义的
而除了double之外的 也可以使用float,但float的范围小于double,直接声明float变量时,那么要求在定义的时候进行强制类型转换,在一个数字后加一个字母’f‘、‘F’、或者在数字前面加个(float)
既然说到了小数的问题就必须考虑一下整形计算的问题
用char进行表示,而且赋值使用单引号’'来声明字符型的字符变量的内容可以与int类型进行转换。
char类型的变量变为int类型的变量内容的时候其所包含的就是编码
大写字母AscII(A-Z):65(A)~~90(Z)
小写字母AscII(a-z):97(a)~~122(z)
字符数字(‘0’‘9’):48(‘0’)~57(‘9’)
在其他的语言中可能使用的ASCII编码,而在java中使用的是UNICODE编码,正在因为在java中对于字符的特效支持特别好,所有还有另外一类神奇的用法。
对于布尔型的内容需要说明:在其他语言中由于没有提供布尔型的数据 ,我们会使用数字来描述布尔型,例如0表示false,非0表示true,但是java中没有这个概念。
在字符串中使用了”+“表示两个字符的内容进行连接;一旦字符串有了”+“,则所有的数据类型都变为String类型。如果这时候想要得到正确的计算结果,那么必须使用我们的”()“解决问题。
在java中还存在一种叫做转义字符的概念,几个常用的转义字符换行(\n)、制表符(\t)、双引号(\")、以及单引号(\’)、\(\)。
|-++变量:++x 先自增再运算,x++ 先运算再自增
|—变量: --x 先自减再运算,x-- 先运算再自减
三目运算是一种赋值运算,根据条件进行运算
数据类型 变量 = 布尔表达式 ? 条件满足时赋值内容 : 条件不满足时赋值内容
例:将两个变量之中大的内容赋值给新的变量
大于>、小于<、等于=、不等于!=、等于==,最终的结果都是boolean布尔型
与&&、或||、非!
十进制与二进制的转化,数据除2取余,一直除到0为止,将余数倒序排列。
移位
进制
出错原因是因为023为八进制 进行进制转化为十进制 为19
与操作:
|-&&:表示逻辑与运算,若干个判断只要有其中的一个条件为false,后面的不需要再进行判断,结果为false
|-&:表示所有的判断都要执行
或操作
|-||:表示逻辑与运算,若干个判断只要有其中的一个条件为true,后面的不需要再进行判断,结果为true
|-|:表示所有的判断都要执行
位运算:
|-&:运算的两个数据位,只要有一个0,其结果就为0
|-|:运算的两个数据位,只要有一个1,其结果就为1