java基础_01

1Java基础 1.1简单认识java 1.1.1发展历史 Sun公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。 Java是一门面向对象编程语言,不只吸取了C++语言的各类优势,还摒弃了C++里难以理解的多继承、指针等概念,所以Java语言具备功能强大和简单易用两个特征。Java语言做为静态面向对象编程语言的表明,极好地实现了面向对象理论。html

1.1.2Java分为三个体系 JavaSE ( J2SE ) (Java2 Platform Standard Edition,java平台标准版) C/S JavaEE ( J2EE ) (Java 2 Platform,Enterprise Edition,java平台企业版) JavaME ( J2ME ) (Java 2 Platform Micro Edition,java平台微型版)。 2005年6月,SUN公司公开Java SE 6。此时,Java的各类版本已经改名以取消其中的数字"2":J2EE改名为Java EE, J2SE改名为Java SE,J2ME改名为Java ME。java

Java具备简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特色 。Java能够编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等mysql

如今是Orcale的子公司 2Java环境的搭建 要开始学习 Java 编程,须要两样东西。 JDK + IDE。(eclipse/myeclipse/idea) 1.8的到来慢慢的趋向idea 2016.3 JDK安装及环境变量设置 JDK的安装 JDK官网地址:oracle官网(sun公司被甲骨文收购了,因此要去oracle官网) www.oracle.com/technetwork… 注意:下载安装时须要注意操做系统的版本和JDK的版本之间对应的关系。 2.1.1Jdk下载以及配置 2.1.1.1打开官网sql

应该检查你的操做系统是32位或64位的,并下载相应的JDK版本(个人是 64bit 的电脑)。apache

2.1.1.2赞成协议后,选择对应版本下载:编程

2.1.1.3看看下载后文件,它长这样:数组

2.1.1.43- 安装Java(JDK)tomcat

2.1.1.5 进入 JDK 安装目录,例如目录: (建议使用默认路径)安全

D:\Program Files\Java\jdk1.8.0_65多线程

JDK安装后,安装程序会询问你JRE要安装的位置。在这里我选择: C:\DevPrograms\Java\jre.8.0_65\

通过一段时间后,Java 成功完成安装。

2.1.1.6如今查看目录,将有2个目录,它们分别是:

2.1.2配置Java环境变量 若是您使用的是Window Vista 或 Windows7(个人是Windows7): 2.1.2.1在桌面上,右键单击"计算机"图标,而后选择属性。

2.1.2.2单击 "新建" 建立一个名为 JAVA_HOME 新的环境变量。 输入路径JDK目录。 变量名称: JAVA_HOME 变量值: D:\Program Files\Java\jdk1.8.0_65

2.1.2.3下一步修改环境变量路径(Path)。 C:\Ruby23\bin;G:\app\Administrator\product\11.2.0\dbhome_1\bin;D:\mysql-5.6.24-win32\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\system32\wbem;%JAVA_HOME%\bin;C:\Program Files\TortoiseSVN\bin;E:\apache-tomcat-7.0.21\bin;C:\Program Files\MySQL\MySQL Server 5.5\bin;%M2_HOME%\bin

添加到路径(Path)的前面(或后面或中间均可以): %JAVA_HOME%\bin; 若是不想配置变量直接 拷贝 C:\Java\jdk1.7.0_79\bin

到这里已经安装了 Java,接下来咱们来验证一下安装结果。 2.1.2.4打开”运行“,以下图所示:window+R

2.1.2.5点击”肯定“,在命令行上输入:java 后,显示结果以下:

有命令提示,则说明已经成功安装了 Java,到此Java安装的介绍完成。 2.1.3怎么查看java的jdk版本

2.1.4Jdk配置总结:

配置JDK的环境变量 为了让操做系统找到JDK提供的编译、运行命令等文件所在路径;咱们能够经过配置PATH环境变量来实现。 PATH环境变量是一系列系统目录,当运行时操做系统会进入到PATH环境变量中的每个目录查找对应的命令。 配置JAVA_HOME变量指向JDK安装目录,目的让软件如何找到JDK。eg:D:\java\jdk1.7

配置CLASSPATH变量,表示搜索路径,能够不用配置。 PATH指向JDK的bin目录,由于javac,java等命令安装在此目录下面。 eg:%JAVA_HOME%\bin; 2.2JDK,JRE,JVM的关系 JDK -- Java Development Kit(Java开发工具包) 若是没有安装jdk eclipse绝对启动不来,可是若是你用myeclipse就不须要安装jdk,由于自带 JRE -- Java Runtime Environment(Java运行环境) JVM -- Java Virtual Machines(Java虚拟机) JRE = Java系统类库 + JVM; JDK = JRE + 编译运行开发工具; 运行java程序最小环境为JRE。

开发java程序最小环境为JDK。

2.3编译运行 Java程序基本结构及编译运行 编写的java源文件(.java) 自编译生成(咱们的工具备自编译功能) 字节码文件 (.class)
程序的运行须要JVM的支持,为字节码文件.class提供运行环境。

“java解释器就是把在java虚拟机上运行的目标代码(字节码)解释成为具体平台的机器码的程序。”即jdk或jre目录下bin目录中的java.exe文件,而javac.exe是编译器。 运行java程序的过程是先用javac编译,而后用java解释。而一经编译成功后,就能够直接用java.exe随处解释运行了。 裸机:是指没有配置操做系统和其余软件的电子计算机 2.4虚拟机(JVM) 2.4.1虚拟机演示 什么是java虚拟机(JVM)?什么是java的虚拟机实例?

何为实例:实例即对象。实例被用来模拟现实世界中存在的、具体的或原型的东西。

第1、写一个java主函数 Thread.sleep(10000000); sleep方法是程序休眠多少毫秒 在文本中编写 public class Hello{

public static void main(String[] args){
	try{
		Thread.sleep(10000000); 
	}catch(Exception e){
		
	}
	System.out.println("Hello");
}
复制代码

}

第2、进入cmd 找到对应的java文件手动编译 ,

经过javac xxxx.java(Hello.java)编译

经过java xxxx(Hello) 运行

第3、打开任务管理器,看到一个叫java.exe的程序,这个就是java的虚拟机,java.exe这个命令就是用来启动一个java虚拟机,而main函数就是一个java应用的入口,main函数被执行时,java虚拟机就启动了。

第4、打开开发工具Myeclipse/elicpse 编写刚才的代码而后run application,再次run application 第5、再次打开任务管理器--进程 有两个javaw.exe,为何会有两个?由于咱们刚才运行了两次run application。这里我是要告诉你,一个java的application对应了一个java.exe/javaw.exe(java.exe和javaw.exe咱们把它当作java的虚拟机一个个实例,区别就是一个有窗口界面一个没有)。你运行几个application就有几个java.exe/javaw.exe。或者更加具体的说,你运行了几个main函数就启动了几个java应用,同时也启动了几个java的虚拟机。 2.4.2总结: 一、java源程序(.java)经过javac命令编译源文件生成字节码文件(.class),再经过java命令启动JVM,JVM就会加载.class文件,最后运行.class文件。 二、java的虚拟机能够说至关于咱们的一个java类,而java虚拟机实例,至关咱们new一个java类,不过java虚拟机不是经过new这个关键字而是经过java.exe或者javaw.exe来启动一个虚拟机实例。 注意:java官方提供了不一样平台JVM,但遵循相同的标准,效果相同,即咱们所说的跨平台、前提标准.class。

cd 定位文件 2.5Eclipse简介 2.5.1Eclipse开发环境 1.3.1.Eclipse 是一个开放源代码的、基于Java的可拓展开发平台,是目前主流的IDE(集成开发环境)开发环境。就其自己而言,它只是一个框架和一组服务,用于经过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(JDK) 。 2.5.2Eclipse下载安装 Eclipse官网地址:www.eclipse.org/downloads ,免费的。下载完后不须要安装,由于自己也是Java语言制做的。但必须先安装JDK。 下载步骤: www.eclipse.org/downloads/e…

或者

还能够安装MyEclipse 3Java 变量 3.1变量 3.1.1变量定义 什么是变量 变量就是指在内存中开辟的存储空间,用于存放运算过程当中须要用到的数据。 对于变量咱们须要注意几个地方: 一、变量的声明:必须用特定的语法声明一个变量,让运行环境为其分配空间。 int/byte 二、变量的命名:变量最好要有个见名就知道意思的名字,并且要符合Java的规范。 三、变量的初始化:变量命名后,必需要为其赋一个初始值这样才能使用。int a = 0; 四、变量的访问:能够对变量中的数据进行存取,可是必须和其类型相同的数据操做。 3.1.2声明及初始化 在Java语言中,全部的变量在使用前必须声明。声明变量的基本格式以下: type identifier [ = value][, identifier [= value] ...] ; int a = 0 ,b= 2; 格式说明:type为Java数据类型。identifier是变量名。可使用逗号隔开来声明多个同类型变量。 如下列出了一些变量的声明实例。注意包含了初始化过程。 int d = 3, e=0, f = 5; // 声明三个整数并赋予初值 double pi = 3.14159; // 声明了双精度浮点变量 pi char x = 'x';        // 声明变量 x 的值是字符 'x'。 3.1.3Java标识符,关键字 什么是标识符 Java全部的组成部分都须要名字。类名、变量名以及方法名都被称为标识符。 关于Java标识符,有如下几点须要注意: 一、全部的标识符都应该以字母(A-Z或者a-z),美圆符()、或者下划线(_)开始
二、首字符以后能够是任何字符的组合
三、关键字不能用做标识符,标识符是大小写敏感的
例如:MyFirstHello(驼峰命名法)
合法标识符举例:age、salary、_value 非法标识符举例:123abc、-salary

什么是关键字: 关键字是指java语言中预先定义的表明特定含义的字符。 不能用于常量、变量、和任何标识符的名称。如: public 、default 、 break 、 abstract 等。 3.1.4变量简单访问 变量只是存放数据的空间,能够对变量赋值,更改和操做,要把变量的操做理解为对其所存储的数据的操做。但操做的数据类型必须匹配。 eg:

int  t = 50;
	t = t + 20;     //t = 70;
	System.out.println(t);
复制代码

eg: int sal = 1500.50;//编译报错 double salary = 1500.6; int a = salary%2; //编译报错 3.1.5知识总结(得出基本语法) 编写Java程序时,应注意如下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不一样的。 类名:对于全部的类来讲,类名的首字母应该大写。若是类名由若干单词组成,那么每一个单词的首字母应该大写,eg: MyFirstJavaClass 。(驼峰命名法 ) 方法名:全部的方法名都应该以小写字母开头。若是方法名含有若干单词,则后面的每一个单词首字母大写。(驼峰命名法 ) 源文件名:源文件名必须和类名相同。保存文件的时候,应该使用类名做为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(若是文件名和类名不相同则会致使编译报错)。 主方法入口:全部的Java 程序由public static void main(String []args)方法开始执行。 3.2Java语言支持的变量类型 一、局部变量 二、成员变量(实例变量,引用变量) 三、类变量(静态变量) 3.2.1Java局部变量 一、局部变量声明在方法、构造方法或者语句块中; 二、局部变量在方法、构造方法、或者语句块被执行的时候建立,当它们执行完成后,变量将会被销毁;(销毁是自动的,不须要咱们考虑) 三、访问修饰符不能用于局部变量;int a = 0; 四、局部变量只在声明它的方法、构造方法或者语句块中可见; 五、局部变量是在栈上分配的。 六、局部变量没有默认值,因此局部变量被声明后,必须通过初始化,才可使用。 七、局部变量在声明时在栈上并无分配内存,真正的内存分配是在赋初值时进行的。 在例中age是一个局部变量。定义pupAge()方法中,它的做用域就限制在这个方法中。 案例演示: /**

  • 测试局部变量
  • @author Admin

*/ public class TestLocalVariable { public void pupAge(){ int age = 0; age = age + 7; System.out.println("小明的年龄是: " + age); } public static void main(String args[]){ TestLocalVariable test = new TestLocalVariable(); test.pupAge(); } } 3.2.2实例变量 一、实例变量声明在一个类中,在方法、构造方法和语句块以外; 二、一个对象被实例化后,每一个实例变量的值就跟着肯定; 三、实例变量在对象建立时建立,在对象被销毁的时销毁; 四、实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部可以经过这些方式获取实例变量信息;实例变量能够直接经过变量名访问。 五、实例变量能够声明在使用前或者使用后; 六、访问修饰符能够修饰实例变量; 七、实例变量对于类中的方法、构造方法或者语句块是可见的。通常状况下应该把实例变量设为私有。经过使用访问修饰符可使实例变量对子类可见 八、实例变量具备默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值能够在声明时指定,也能够在构造方法中指定; 案例演示:

/**

  • 测试实例变量
  • @author Admin

*/ public class TestInstanceVariable {

public String name;  // 这个成员变量对子类可见 
private double salary; // 私有变量,仅在该类可见   
//在构造器中对name赋值   
public TestInstanceVariable (String empName){ 
	name = empName; 
} 
//编写sett方法
public void setSalary(double empSal){ //设定salary的值  
	this.salary = empSal;
}
//定义打印方法
public void printEmp(){ // 打印信息    
	System.out.println("name  : " + name );
	System.out.println("salary:"+salary);
} 
public static void main(String args[]){ 
	//实例化对象
	TestInstanceVariable empOne = new TestInstanceVariable("Ransika");
	//给变量赋值
	empOne.setSalary(1000); 
	//调用打印方法
	empOne.printEmp(); 
} 
复制代码

} 3.2.3类变量(静态变量) 一、类变量也称为静态变量,在类中以static关键字修饰,但必须在方法构造方法和语句块以外。 二、不管一个类建立了多少个对象,类只拥有类变量的一份拷贝。 三、静态变量除了被声明为常量外不多使用。常量是指声明为public/private,final与static类型的变量。常量初始化后不可改变。 四、静态变量储存在静态存储区(JVM内存管理的方法区)。常常被声明为常量,不多单独使用static声明变量。 静态变量在程序开始时建立,在程序结束时销毁。 五、与实例变量具备类似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。

六、默认值和实例变量类似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值能够在声明的时候指定,也能够在构造方法中指定。此外,静态变量还能够在静态语句块中初始化。 七、静态变量能够经过:ClassName.VariableName的方式访问。(类名.变量名) 八、类变量被声明为public static final类型时,类变量名称必须使用大写字母。若是静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

案例演示:

/**

  • 测试类的变量即静态变量
  • @author Admin */ public class TestStaticVariable { //salary是静态的私有变量 private static double salary; // DEPARTMENT是一个常量,不能在构造函数中初始化,由于赋值后是不可变 public static final String DEPARTMENT = "开发人员"; public TestStaticVariable(){ salary = 2.2; } public static void main(String[] args) { TestStaticVariable t = new TestStaticVariable(); double salary2 = TestStaticVariable.salary; System.out.println(salary2); } } 4Java 数据类型 4.1八大基本类型 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存 该类型数据。int a = 1; float b = 3.0f; 所以,经过定义不一样类型的变量,能够在内存中储存整数、小数或者字符。 Java的两大数据类型:

内置数据类型(默认的,原始的,基本的类型) 引用数据类型(在内存中存储的是引用地址)

Java提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

4.1.1byte byte数据类型是8(bit)位、有符号的,以二进制补码表示的整数;1 Byte = 8bit 01010101 (8位) 00000110 最小值是-128(-2^7);不要要死记 最大值是127(2^7-1); 默认值是0; byte类型用在大型数组中节约空间,主要代替整数,由于byte变量占用的空间只有int类型的四分之一; 例子:byte a = 100,byte b = -50。 对于数值类型的基本类型的取值范围,咱们无需强制去记忆,由于它们的值都已经以常量的形式定义在对应的包装类中了。 包装类Byte

System.out.println("/**************byte类型的测试*****************/");
	//byte的最大值
	byte maxValue = Byte.MAX_VALUE;
	System.out.println(maxValue);
	//byte的最小值
	byte minValue = Byte.MIN_VALUE;
	System.out.println(minValue);
	byte b = 10;
	byte c = 12;
	System.out.println(b+","+c);
复制代码

查看位数 //转成二进制,查看位数 String bb = Integer.toBinaryString(maxValue); System.out.println(bb); //查看位数 int size = Byte.SIZE; System.out.println(size);

二进制转十进制 //二进制转换十进制 byte re = (byte)Integer.parseInt(bb, 2); //- 256;
System.out.println(re);

4.1.2short short数据类型是16位、有符号的以二进制补码表示的整数; 默认值是0; 最小值是-32768(-2^15); 最大值是32767(2^15 - 1); Short数据类型也能够像byte那样节省空间。一个short变量是int型变量所占空间的二分之一; 例子:short s = 1000,short r = -20000。 System.out.println("/short类型的测试*/"); short maxValue2 = Short.MAX_VALUE; System.out.println(maxValue2); short minValue2 = Short.MIN_VALUE; System.out.println(minValue2); short t = 55; System.out.println(t); //查看二进制,以及位数 String binaryString = Integer.toBinaryString(maxValue2); System.out.println(binaryString);

4.1.3int(重点) int数据类型是32位、有符号的以二进制补码表示的整数;通常地整型变量默认为int类型;默认值是0; 最小值是-2,147,483,648(-2^31); 最大值是2,147,483,647(2^31 - 1); 例子:int a = 100000, int b = -200000。 包装类Integer System.out.println("/int类型的测试*/"); int maxValue3 = Integer.MAX_VALUE; System.out.println(maxValue3); int minValue3 = Integer.MIN_VALUE; System.out.println(minValue3); //查看二进制,以及位数 String binaryString2 = Integer.toBinaryString(maxValue3); System.out.println(binaryString2);

4.1.4long long数据类型是64位、有符号的以二进制补码表示的整数;默认值是0L;(?) 最小值是-9,223,372,036,854,775,808(-2^63); 最大值是9,223,372,036,854,775,807(2^63 -1); 这种类型主要使用在须要比较大整数的系统上; 例子: long a = 100000L,Long b = -200000L。 包装类Long System.out.println("/long类型的测试*/"); long maxValue4 = Long.MAX_VALUE; System.out.println(maxValue4); long minValue4 = Long.MIN_VALUE; System.out.println(minValue4); //查看二进制,以及位数 String binaryString3 = Long.toBinaryString(maxValue4); System.out.println(binaryString3);

4.1.5float(这个稍微用的少) float数据类型是单精度、32位、符合IEEE 754标准(IEEE二进位浮点数算术标准)的浮点数;默认值是0.0f; float在储存大型浮点数组的时候可节省内存空间; 浮点数不能用来表示精确的值,如货币; 例子:float f1 = 234.5f。最小值(1.4乘于10的负45次方) 包装类Float System.out.println("/float类型的测试*/"); float maxValue5 = Float.MAX_VALUE; System.out.println(maxValue5); //用高精度类型查看科学计数法 BigDecimal valueOf = BigDecimal.valueOf(maxValue5); System.out.println(valueOf.toPlainString());

float minValue5 = Float.MIN_VALUE;
	BigDecimal bigf = BigDecimal.valueOf(minValue5);
	System.out.println(bigf.toPlainString());
	//查看位数
	System.out.println(Float.SIZE);
复制代码

4.1.6double(重点) double数据类型是双精度、64位、符合IEEE 754标准的浮点数;默认值是0.0d; 浮点数的默认类型为double类型; double类型一样不能表示精确的值,如货币; 例子:double d1 = 123.4。 System.out.println("/double类型的测试*/");

double maxValue6 = Double.MAX_VALUE;
	System.out.println(maxValue6);
	
	BigDecimal valueOf2 = BigDecimal.valueOf(maxValue6);
	System.out.println(valueOf2.toPlainString());
	
	double minValue6 = Double.MIN_VALUE;
	System.out.println(minValue6);
	//使用高精度转换成普通数据的展现
	BigDecimal valueOf3 = BigDecimal.valueOf(minValue6);
	System.out.println(valueOf3.toPlainString());
	int size2 = Double.SIZE;
	System.out.println(size2);
复制代码

4.1.7boolean boolean数据类型表示一位的信息; 只有两个取值:true和false;默认值是false; 这种类型只做为一种标志来记录true/false状况; 例子:boolean one = true。(没有大小,值) System.out.println("/boolean类型的测试*/"); boolean true1 = Boolean.TRUE; System.out.println(true1); boolean false1 = Boolean.FALSE; System.out.println(false1);

4.1.8char char类型是一个单一的16位Unicode字符; 8位=一个字节 什么是Unicode编码:Unicode码也是一种国际标准编码,采用二个字节编码 Unicode字符一般用十六进制编码方案表示 最小值是’\u0000’(即为0); \u开头的是一个Unicode码的字符 最大值是’\uffff’(即为65,535); char数据类型能够储存任何字符;包装类是Character 例子:char letter = ‘A’。注意:必须用单引号。 char以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 若是要输入数值则 须要(int)强转 若是不强转则打印的空 System.out.println("/char类型的测试*/"); char maxValue7 = Character.MAX_VALUE; System.out.println((int)maxValue7); char minValue7 = Character.MIN_VALUE; System.out.println((int)minValue7); int size3 = Character.SIZE; System.out.println(size3); char maxcc = '\uffff';//16进制 最大值 char mincc = '\u0000'; System.out.println("char的最大值:"+maxcc); System.out.println("char的最大值:"+mincc);

总结注意:max_value,min_value ,size Integer, Character 4.2类型转换 4.2.1自动类型的转换 定义:自动类型转换,也称隐式类型转换,是指不须要书写代码,由系统自动完成的类型转换。因为实际开发中这样的类型转换不少,因此 Java 语言在设计时,没有为该操做设计语法,而是由 JVM 自动完成。

转换规则:从存储范围小的类型到存储范围大的类型。 具体规则为:byte→short(char)→int→long(64)→float(32)→double

也就是说 byte 类型的变量能够自动转换为 short 类型,示例代码: byte b = 10; short  sh  =  b;这里在赋值时,JVM 首先将 b 的值转换为 short 类型,而后再赋值给 sh。 在类型转换时能够跳跃。示例代码: byte b1 = 100;int n = b1; 注意问题:在整数之间进行类型转换时,数值不发生改变,而将整数类型,特别是比较大的整数类型转换成小数类型时,因为存储方式不一样,有可能存在数据精度的损失。

同理: long num = 10000000000000L; float f1 = num; double dou = num; System.out.println(f1);

4.2.2强制类型转换 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换极可能存在精度的损失,因此必须书写相应的代码,而且可以忍受该种损失时才进行该类型的转换。 转换规则:从存储范围大的类型到存储范围小的类型。 具体规则为:double→float→long→int→short(char)→byte 语法格式为:(转换到的类型)须要转换的值 示例代码: double d = 3.10; int n = (int)d; System.out.println(n);//结果 3 这里将 double 类型的变量 d 强制转换成 int 类型,而后赋值给变量 n。须要说明的是小数强制转换为整数,采用的是“去 1 法”,也就是无条件的舍弃小数点的全部数字,则以上转换出的结果是 3。整数强制转换为整数时取数字的低位,例如 int 类型的变量转换为 byte 类型时,则只取 int 类型的低 8 位(也就是最后一个字节)的值。

int  nn  =  123;
	byte  b  =  (byte)nn;
	System.out.println(b);
	
	int  m  =  1234;  //32
	byte  b1  =  (byte)m; //byte的最大值127
	//11010010  取反 加1  00101101
	//10101110          
	String binaryString = Integer.toBinaryString(b1);
	System.out.println(binaryString);
	System.out.println(b1);
	int parseInt = Integer.parseInt("-00101110", 2);
	System.out.println(parseInt);
复制代码

则 b 的值仍是 123,而 b1 的值为-46。b1 的计算方法以下:m 的值转换为二进制是10011010010,取该数字低8位的值做为b1的值,则b1的二进制值是11010010,按照机器数的规定,最高位是符号位,1表明负数,在计算机中负数存储的是补码(取反加1的规则),则该负数的原码是 00101110,该值就是十进制的-46。 注意问题:强制类型转换一般都会存储精度的损失,因此使用时须要谨慎。

4.3八大基本类型总结 Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E以前的数字要乘以10的多少次方。好比3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。 byte、char、short、三种类型参与运算时,先一概转换成int类型再进行运算。 实际上,JAVA中还存在另一种基本类型void,它也有对应的包装类 java.lang.Void,不过咱们没法直接对它们进行操做。 float强转为double时会输出怪异值,是由于十进制在转换为二进制的时候可能会不许确 4.4引用类型 定义:是一个对象类型,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。  String str = “123”; 在Java中,引用类型的变量很是相似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,好比Employee、Pubby等。变量一旦声明后,类型就不能被改变了。 对象、数组都是引用数据类型。 全部引用类型的默认值都是null。 一个引用变量能够用来引用与任何与之兼容的类型。 例子: String str = new String("我是String");

5做业: 做业前练习打字半个小时。--必须任务 一、Java平台分为哪几个版本? 二、int和Integer有什么区别? (编写到纸质笔记本) 三、Java中有哪些数据类型?有哪几种基本数据类型? 四、请写出Java中与基本数据类型相对应的封装类? 五、成员变量与类变量的区别 (总结题目:编写到纸质笔记本) 六、若是main方法被声明为private会怎样? 七、说明一下public static void main(String args[])这段声明里每一个关键字的做用? 八、若是去掉了main方法的static修饰符会怎样? 九、你怎么理解变量? 十、简单的介绍下JVM是如何工做的?

注意:不知道的各类百度。

6附加思考知识: 引用传递 和 值传递 引用类型:除了在函数传值的时候是"引用传递",在任何用"="向对象变量赋值的时候都是"引用传递"。 值传递:基本类型的传递都属于值传递,和C语言同样,当把Java的基本数据类型(如 int,char,double等)做为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,全部的函 数体内部的操做都是针对这个拷贝的操做,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到做为输入参数的变量。这种方式的参数传递被称为"值 传递"。

爱好学习的宝宝们,能够找我。v:17711692868

相关文章
相关标签/搜索