欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java第二篇Java基础,

来源: javaer 分享于  点击 47932 次 点评:260

java第二篇Java基础,


eclipse安装教程 : https://blog.csdn.net/Snail__fly/article/details/77278061  

汉化:https://blog.csdn.net/qq_38113556/article/details/79297606

javac 命令是生成后缀为class的字节码文件,它需要写文件的名称和后缀。java命令是为了调用这个文件,它不用写生成的class的文件的后缀,只写名字即可。

JVM:保证java语言跨平台,JRE:Java程勋运行环境,JDK:Java程序的开发环境. JDK: JRE + 工具 。JRE: JVM + 类库。

每个Java应用程序有一个Runtime类的实例,使运行程序与运行环境相连接,Runtime的exec(string)方法可以执行dos命令。通过Runtime的getRuntime返回实例。

Path环境变量的作用是为了让。Exe文件的命令 在任意目录下可用,javac和java命令如果不配path只能在JDK 的bin目录下用,因为Bin里有Java的内部类库和两个的。Exe文件。对可执行文件先在当前路径去找,如果没找到就去path环境变量的配置的路径去找。

导出与导入:如果要用别的项目的类, 把对方类export出成jar包(多个类的集合),然后复制到自己项目路径下然后添加至构建路径,jar包右键buildpath/addtobuildpath。export导出javadoc文档,index文件用浏览器打开

可以用JAVA_HOME 配置path来代替直接在path里添加,这样可以避免因为修改出错,JAVA_HOME 里的path只需要配置到JDK安装目录即可,path里用%JAVA_HOME%/bin;代替原来的path即可。、

Classpath路径是为了在任意目录下运行Java的。Class文件。这个路径要配置到放有.class的目录,不方便一般不用。不配的话运行当前目录下的。Class文件。Text和notepad++可以编写脚本。

1.Java程序的基本结构:大体分为main()主方法,标识符、关键字、语句、注释等。这些跟C#都差不多。。类的首字母大写并且各个单词的首字母大写,常量:在程序执行过程中其值不能改变,分为字面值常量和自定义常量,二进制开头用0b开头,B后缀也表示二进制,八进制以0开头,十六进制以0x开头。二进制从右开始,每三位(不足用0补齐)的十进制值,组成的数是八进制,16进制是4位数,

1.1包的定义及注意事项:package 这个关键字,这个关键字用来定义包,来表示你写的类在这个包里。关键字字母都是小写,标识符不能以数字开头,不能用关键字。包其实就是文件夹,对类进行分功能管理,用于把相同的类名进行区分,包的命名全为小写,单级表示一个文件夹,多级表示嵌套的文件夹,嵌套用符号“.”表示.package语句必须是程序的第一条可执行语句,一个java文件只能有一个package语句,如果没有package,默认表示无包。手动运行时, 把class放包的对应目录下,并回到包的根目录带包名运行。class文件。或者编译的时候带上-d 格式: javac -d . HelloWord.java 即可,一样带包名运行。不同包下调用类在不导包的情况下要用包名前缀,导入包用关键字import 包名 。 可以用*导入包下所有,最好是用谁导入谁。package(只能有一个) > import(可以有多个) >class(可以有多个) 顺序。

2.标识符的命名规则:字母、数字、下划线和美元($)符号组成、第一个字符不能为数字。java使用的是Unicode标准字符集,标识符不能使java的关键字和保留字,并且区分大小写。Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

原码,反码。补码:原码:最高位为符号位,0表示整数,1表示负数,其余表示数值大小。正数的反码与原码相同,负数的反码与原码相比是符号不变数值为取反,正数的补码与原码相同,负数的补码是在反码的基础上加1.计算机中数据的运算都是补码进行的。补码转为原码2种方法:

1:如果补码是正数的话,即符号位(一般是最高位) 为0的话,该补码即原码。
2:如果补码是负数的话,即符号位是1的话,在有两种方式将其变为原码。a:在对该补码求补,所得的补码即为原补码的原码 b:符号位不变,将补码-1,再将各位取反,得到的反码即为原码

3.有8种基本类型,6种为数值类型,另外两种为字符和布尔类型。6种数值类型又分为4种整数和2种浮点数。

byte 1个字节(8位)、 short 2 个字节16 位 、int 4个字节 32位、long 8 个字节 64位。float:4个字节,32位,double : 8个字节,64位。对long型变量赋值时结尾必须加上l或者L,float型赋值结尾加F或者f。如果不加f系统自动将其定义为double。为double赋值时,后面可加D或者d,也可以不加。整数类型在java中有三种表示形式,十进制,八进制:逢八进一,最大数字为7且必须以0开头,十六进制:逢16进1,每位最大数字15,以0X或0x开头 0~9 a~f (大小写均可),二进制用0b开头。字符类型:char存储单个字符 2个字节,用单引号,char x = ‘a’ 或者 char x = 97;  后者是因为a在unicode表中位置在97位。布尔类型:true和false ,boolean类型到底占用几个字节的内存,具体还要看虚拟机实现是否按照规范来,所以1个字节、4个字节都是有可能的。两种浮点数类型(float、double):    float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。    double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾 。而lua里的number类型为双精度浮点数。

4.变量和常量:在程序执行过程中,值不能改变的量称为常量,能改变的称为变量。声明变量时编译器给这个变量分配了空间。常量:用关键字final限定,语法:final 数据类型 常量名 =  值  ,成员变量的常量必须在定义时就赋值。方法体内的局部变量不用。成员变量又分为静态变量(类型。静态变量) 和实例变量(对象。实例变量)。方法结束。方法中的局部变量占用的内存会被释放。局部变量也随之销毁。

5.运算符: 一元运算符(!从右到左, 与和或从左到右),二元运算符,三元运算符。逻辑运算符   &&和|| 针对boolean类型,可以只判断一次 。而&和| 必须判断两个表达式。位运算符:~反、&与、|或、^异或、<< 左移、>>右移 、无符号右移>>>。异或:同时为0或者同时为1 时 结果为0 否则为1,相同为false,不同为true.结果的精度与精度高的操作数相同。左移就是这个数乘以2的n次方,左移就是左边最高位丢弃,右边补齐0.,右移就是除以将这个数除以2的n次方(y/2),最高位是0,左边补齐0,最高位是1,左边补齐1, 无符号右移 无论最高位是0还是1 左边补齐0, 所有操作都是操作补码,得到的也是补码。三元运算符 boolean b = 20<50?true : false.运算符优先级:如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先被处理。尽量用()来限定优先顺序。如果想得到除后的小数,只需要把操作数据中的任意一个数据变为浮点数。字面值常量如10,不能使用10++ 或++10,只能用变量++或++变量,扩展的赋值运算符隐含了一个强制类型转换。所以 short s = 1; s += 1 不报错, 而 s = s + 1 是错的。shoet s += 1 也是错的, 初始化用 “=”。位运算符:~反 ,取反首先的得到的是补码,需要转换为反码在转换为原码,这里整数的原码和反码,补码相同,所以可以直接取反,但是如果是负数取反, 首先把负数的原码变为补码在运算,因为计算机的操作都是通过补码来操作的,某一个数据被另一个数据位异或两次,该数本身不变

6.类型转换:隐式类型转换和显示类型转换。 自动类型转是在运算符操作后得到的结果会自动称为高级别的类型。把高精度的变量赋值给低精度的变量需要强制转换,且不可超出变量的取值范围, 否则会发生数据溢出。用()进行强转。不能类型运算时先把小的类型转化成大的类型再参与运算,byte,short,char参与运算首先转换成int类型,并且 byte,short,char 之间不相互转换。

7.一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number 类属于 java.lang 包。Character 类用于对单个字符进行操作,Character 类在对象中包装一个基本类型 char 的值。Character类提供了一系列方法来操纵字符。你可以使用Character的构造方法创建一个Character类对象,将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱。

Date类:精确到毫秒,表示特定的瞬间,后来被Calendar代替,默认获取为当前时间(这个时间包含所在地的时区,比如北京东八时区 ,结果为已经加了八小时的)。pattern类是正则表达式里的类。

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间,子类simpleDataFormat,在用此类把字符串解析成一个日期的时候(Data)给的格式必须与给定字符串的格式相同,data转换字符串format方法,字符串解析parse方法。

Calendar类:抽象类,为特定瞬间与日历字段转换提供方法。getInstance()方法返回自己子类的一个对象。get方法返回日历的各种int类型字段,参数为你需要获得的类型,类型为Calendar的静态字段。add方法是对给定的字段进行操作,负数减,整数加。set()方法设置日历的字段。

BigInteger:可以让超过Integer范围的数据进行运算。BigDecimal:由于float和double数据在运算的时候容易丢失数据,所以为了能精确表示,计算浮点数,java提供了BigDecimal。只有一个构造方法准确:用字符串参数new BigDecimal对象是准确的,其他存在风险。

因为在学java之前有别的语言基础,所以这里就不做过多详细解释,只是当做复习。过会还会发一篇循环队列的帖子 有需要的小伙伴可以拿走。

JDK7新特性:1.二进制字面量 :int x = 0b100101 ;x为37 2. 数字字面量可以出现下划线: int y = 1_1123_1000;但不能出现在进制标识和数值之间。不能出现在小数点旁边。不能出现在数值开头和结尾、。泛型简化:new 的<>里可以省略类型。try..catch语句的try后可以加一个(),()里放java.lang.AutoClosedable的子类对象, 对象可以自动释放,自动关闭。可以关闭一些流类的对象。

Integer  在-128-127 之间 比较的时候返回true  因为 在这个区间内的Integer 会把对象存在一个数组里,创建Integer的时候有对应的值直接返回对应对象, 跟字符串池差不多。但是Float不行,它返回的是false.

相关文章

    暂无相关文章
相关栏目:

用户点评