JavaSE introduction

1.软件:系统软件 vs 应用软件

2.人与计算机做交互:使用计算机语言

图形化界面  vs  命令行方式 dir  md(make directory)  rd(remove directory)  cd(change directory) cd ..cd  /   del exit

3.语言的分类:

第一代:机器语言

第二代:汇编语言

第三代:高级语言(面向过程  vs  面向对象)

4.java语言的特性:面向对象性;健壮性;跨平台性(write once ,run anywhere )---JVM

5.安装JDK及配置环境变量

JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握 JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等.其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多.而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多.但不管怎么说,我们还是需要先把Sun JDK掌握好.

1)安装JDK

2)设置java环境变量

添加

D:\Program Files\Java\jdk1.8.0_45\bin

JDK 》 JRE 》 JVM


6.如何编写运行第一个java程序

    编写--编译----运行

每一个java文件都是以.java结尾的,称为源文件helloWorld.java。java程序就存在于这个源文件中

public class HelloWorld{

  //程序的主方法,是程序的入口

      public static void main(String []srt){

       System.out.println("Hello World");

       }

}

注意点:

java源文件以“java”为扩展名。类是java中的基本组成单元,比如本类中的HelloWorld。

一个源文件中最多只能有一个public类,其它的权限访问修饰的类不限,如果源文件中包含一个public类,则文件名必须按该类名命名。

java应用程序的执行入口是main()方法,它有固定的书写格式:public static void main(String []str){...}

java语言严格区分大小写:变量的名字,关键字,都是区分大小写的


1.变量

   常量:固定量(值),不能改变

变量:一个可以改变的量(值)

 

1.常量分类

   整数常量     :         所有整数(12,23,34)

   小数常量     :         所有小数(1.2,2.3,4.56)

   字符常量     :         用单引号括起来(‘a’,’A’,’人’)

   字符串常量   :         用双引号括起来(“数字”,”A”,””)

   布尔常量     :         true,false

   空常量       :         null

2.基本数据类型

 

  1).整数类型:在程序中使用int关键字来作为默认表示。

 

byte 字节类型:使用byte关键字表示,在内存中占用一个字节空间,范围:-128-127

short 短整形: 使用short关键字表示,在内存中占用两个字节空间,范围:-2^15-2^15-1

int整形 :使用int关键字表示,在内存中占用四个字节空间,范围:-2^31-2^31-1

long长整型:使用long关键字表示,在内存中占用八个字节空间,范围:-2^63-2^63-1 

(如果整数常量比较大时,需要在后面添加一个L或者l)

 

  2)小数类型(浮点类型):程序中使用double关键字作为默认浮点数

 

float单精度浮点类型:使用float关键字表示,在内存中占用四个字节空间 (在赋值

小数时,数字后面加上F或者f)范围:-3.403E38-3.403E38

double双精度浮点类型: 使用double关键字表示,在内存中占用八个字节空间 范围:-1.798E308-1.798E308

 

   3)字符类型:

 

使用关键字char来表示,在内存中占用两个字节,范围:0-65535

 

   4)布尔类型:

 

使用关键字boolean来表示,在内存中占用一个字节空间,范围:true、false

 

   

数据类型

关键字

占用空间

范围

整数类型

byte

1

-128~127

short

2

-2^15~2^15-1

int(整数默认型)

4

-2^31~2^31-1

long

8

-2^63~2^63-1

小数类型(浮点型)

float(单精度)

4

-3.403E38~3.403E38

double(双精度)

浮点数默认型

8

-1.798E308~1.798E308

字符类型型

char

2

0~65535

布尔类型型

boolean

1

True,false

 

 

变量定义格式:

     数据类型 字符串(名字) =  常量值

 

变量在定义或者声明后,要初始化变量值。

在对变量赋值时,必须保证所赋予的变量的值,属于变量类型的范围。

 

数据类型的转换

 

1.自动类型转换(自动类型提升)

 

   必须符合大的数值(数据类型)包含小的数值(数据类型)

默认转换次序:byte,short,char-- int -- long -- float -- double同时,int可直接转换成float、double型,而float或者double不能转换成int型。

 

 2.强制类型转换(有可能造成数据精度丢失)

  

       格式: 小的数据类型= (小的数据类型)大的数据类型

       如:double b =10.35;

            int a= intb

数据转换特殊例子:

public class BasicType {

	public static void main(String[] str) {

		byte a = 10;
		byte b = 20;
		byte c = a + b;
		System.out.println(c);

	}

}



此程序在编译后报错,因为,JVM在对待变量操作时由于变量的不确定性,会将变量当作程序中的默认类型(即将a,b默认为int型),所以再将运算的结果(int型)赋值

给byte型的c时,会提示可能损失精度。  


使用强制类型转换

public class BasicType {

	public static void main(String[] str) {

		byte a = 10;
		byte b = 20;
		byte c = (byte)(a + b);
		System.out.println(c);

	}

}


正确输出30


public class TestMain {

	public static void main(String[] str) {
		int i = 10;
		float f = 10.2f;
		double d = f;//自动类型转换
		System.out.println(d);
		i = (int)f;//强制类型转换
		System.out.println(i);
	}
}


2.算术运算符 

    运算符的优先级(从高到低)

优先级

描述

运算符

1

括号

()、[]

2

正负号

+、-

3

自增自减,非

++、--、!

4

乘除,取余

*、/、%

5

加减

+、-

6

移位运算

<<、>>、>>>

7

大小关系

>、>=、<、<=

8

相等关系

==、!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=、+=、-=、*=、/=、%=

16

位赋值运算

&=、|=、<<=、>>=、>>>=

 

如果在程序中,要改变运算顺序,可以使用()

 

1.算术运算符

 

      2元运算符:+  - *  \  %(取模,余数)

   运算顺序:相同运算规则中,从左边开始运算,从右边向左边结合,多个运算符号

   中,先乘除,后加减,()表示先运算

   注:在使用+运算符号时,如果和字符串一起使用加法运算时,此时+不是加法运算

   符,而是字符串连接符。

 

   1元运算符:++(自增+1)、--(自减-1)、

 

    自增运算符在变量的后面:先把变量赋值给一个临时变量,再对变量进行+1运算,

    最后把临时变量赋给接收的变量或直接输出(可选)。

       自增运算符号在变量前面:先对变量进行+1运算,再把运算的结果赋值给变量。

 

2.赋值运算符 :=,+=、-=、*=、\=、%=

   

        A+=10   等价于   A= A+10

  使用复合赋值运算符,可以避免在编译时丢失精度的错误。好处:可以自动类型提升

  转换

 

3.比较运算符:< 、>  <=、>=、==(相等,不要和赋值混淆)、!=(不等)

 

      使用比较运算符,必须有一个结果。而这个结果是boolean(true 、false)

 

      

4.逻辑运算符


5.位移运算符

   

算术右移 (>>):   低位溢出,符号位不变,并用符号位补溢出位

如 -1 >> 2

-1源码                             1000 0000 0000 0000 0000 0000 0000 0001

-1的反码                         1111 1111 1111 1111 1111 1111 1111 1110

-1的补码(反码+1)      1111 1111 1111 1111 1111 1111 1111 1111    故-1再怎么右移还是-1

正数的补码还是自己

算术左移(<<):    符号位不变,低位补零

 

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值