当前位置: 首页 > news >正文

Java语言基础1

学习总结

目录

一、jdk环境变量的搭建... 1

二、数据类型... 1

三、类型转换... 2

四、变量的作用域与生命周期... 4

五、算数运算符... 6

七、比较运算符:>,<,>=,<=,= =,!=. 7

八、逻辑运算符:&,|,^,!,&&,||. 7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一、jdk环境变量的搭建

 

1、打开系统属性中的环境变量:

1)、在系统变量中创建变量名:JAVA_HOME   变量值:jdk\bin路径

 

2)、系统变量中创建  变量名:classpath   变量值:%JAVA_HOME%\lib;.

其中’.’表示当前路径;

 

3)、在系统变量中的path添加 ;%JAVA_HOME%\bin;

 

二、数据类型

1、数值型

数据类型

字节大小

范围

byte

1

-128--127

char

2

0--65535

short

2

-32768--32767

int

4

-2,147,483,648—2,147,483,647

long

8

-9,223,372,036,854,775,808--9,223,372,036,854,775,807

float

4

-3.40292347E+38--+3.40292347E+38

double

8

-1.79769313486231570E+308--+1.79769313486231570E+308

 

2、非数值类型

Boolean   true/false

 

三、类型转换

1、类型转换

    A、 //byte 与int

原因:int及int以下的数据类型进行数学运算时,结果得到的是int;

改为:

原因:将计算a+b得到的整型数强制转换为byte;

 

 

B、//short 与 char

原因:short  与char 表示的范围值不同,虽然他们的字节大小相同

改为:

    C、//long 与int

原因:后面的值默认为int

改为:

D、//float 与double

 

原因:java中小数默认类型为double;

 

改为:

总结:

(1)、自动类型转换(例子就不举了):两种类型必须兼容(A、B中有提);目标类型大于源类型(byteshort/char int long float double 依次增大)

(2)、强制类型转换(上面既是);但自动转换类型并没都有效,如float值赋给int值时,这种就不会自动执行;因为int类型的数据宽度小于 float型;

 

 

四、变量的作用域与生命周期

局部变量与全局变量:全局变量就是在类的整个范围之内,都有效的变量。而局部变量就是在类中某个方法函数内或某个子类内有效的变量。下面将从实际程序代码中慢慢地体会。

 

从以上例子可以看出,变量“a”的值在整个类中都有效。如果同样输出“c”的值,会出现什么样的结果呢?下面从实际代码段中仔细体会。

以上代码在编译时,会出现错误,就是找不到变量“c”。这说明变量“c”只在方法局部中起作用,在方法外就无法再调用。 从上述代码中可以看出,如果一个变量在类中定义,那么这个变量就是全局变量。例如下面的代码

 

3、生命周期:全局变量的生命周期是整个类中,局部变量的生命周期是该变量所处的函数体中;

 

五、算数运算符

1、算术运算符:+,-,*,/,%,++,--

2、算术运算符是对基本数据类型进行运算的操作符,其中容易混淆的是/表示除 ,而%表示取余。另外需要注意的是++,--两个自加自减运算符的区别,如下程序

 

++,--在变量后,是先取变量没有运算前的值,当作表达式的返回值,然后进行运算。而++,--如果在变量前,是先对变量进行运算,然后将运算结果作为表 达式的返回值。需要注意的是,不管在前还是在后,对于参与运算的变量本身,都是进行了一次加1或者减1的操作,没有区别,有区别的是返回值的值。 

算术运算符都是针对基本数据类型进行运算的,只有+除外,可以使用+连 接两个字符串。如:

String s=”Hello”+” World”;//String的值是HelloWorld

 

 

六、位运算符:&,|,^,~,<<,>>,>>>

位运算符是针对二进制的数进行运算的操作符。与操作&的运算规则是两 个都是1才是1,或操作 | 的规则是一个是1就是1,异或 ^ 的规则是不同的是1 ,相同的为0。取反操作~是1变0,0变1。 

<<:左移运算符,规则为,抛掉相应位数的高位,在对应的空位补0。 如: 0110 1001 << 2 =1010 0100  >>:有符号右移,规则为,抛掉相应位数的低位,如果移位前,最高 一位是0,则在对应的高位都补0,如果移位前,最高一位是1,则在对应的高位 都补1。 

0110 1001 >> 2 =0001 1010

1110 1001 >> 2 =1101 1010 

>>>:无符号右移,规则为,抛掉相应位数的低位,在对应的空位 补0:

0110 1001 >>> 2 =0001 1010

1110 1001 >>> 2 =0001 1010 

注意:右移运算符分有符号和无符号,而左移没有这个区别。另外左移一位 相当于乘2,右移一位相当于除以2,速度比较快。

 

七、比较运算符:>,<,>=,<=,= =,!=

比较运算符是对基本数据类型的二进制进行比较。需要注意的是==表示比 较,=表示赋值。另外,==和!=可以对引用类型比较,比较的是虚地址。如:

八、逻辑运算符:&,|,^,!,&&,||

在Java语言中,逻辑值使用true和false进行表示,而1和0不表示逻辑,表示二进制的数。比如:T1&T2,只有当T1和T2都是true时,才返回true  

      T1|T2:T1和T2只要有一个是true,返回值就是true。 

T1^T2:T1和T2不同的时候,返回ftrue,相同的时候返回false。

!T1:T1是true,返回false,T1是false,返回true。

&&,||被称为双与及双或。 

T1&&T2: 只有当T1和T2都是true时,才返回true。但是与单与& 不同的是,双& 会发生短路问题,如T1是false,则不会判断T2的值,直接返回false。而单 与不同,不论T1的值是true还是false,都会判断T2的值。

T1||T2:与双与类似,双或当T1为true时,也会发生短路,直接返回true, 而不判断T2。例如:

 

 

相关文章:

  • C语言运算符表达式
  • C语言基本数据类型
  • Java的三大方向介绍
  • Java的字符串
  • 集合类(一)
  • 集合类(二)
  • 集合类(三)
  • 集合类(四)
  • Sql server基础
  • SQL多表连接查询
  • SQL server 多表查询与视图的使用
  • 浅谈JS中this
  • eclipse如何导入jar包
  • 你所忽略的HashMap
  • 随想
  • Asm.js的简单介绍
  • bearychat的java client
  • Git初体验
  • JS基础之数据类型、对象、原型、原型链、继承
  • node-glob通配符
  • springboot_database项目介绍
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • webpack入门学习手记(二)
  • Zsh 开发指南(第十四篇 文件读写)
  • 从PHP迁移至Golang - 基础篇
  • 飞驰在Mesos的涡轮引擎上
  • 构建工具 - 收藏集 - 掘金
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 想写好前端,先练好内功
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 优化 Vue 项目编译文件大小
  • 阿里云重庆大学大数据训练营落地分享
  • #13 yum、编译安装与sed命令的使用
  • #define 用法
  • #stm32驱动外设模块总结w5500模块
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (算法)Travel Information Center
  • (一)80c52学习之旅-起始篇
  • (转)mysql使用Navicat 导出和导入数据库
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET多线程执行函数
  • .net专家(高海东的专栏)
  • @ModelAttribute注解使用
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [ SNOI 2013 ] Quare
  • [04] Android逐帧动画(一)
  • [04]Web前端进阶—JS伪数组
  • [20180224]expdp query 写法问题.txt
  • [30期] 我的学习方法
  • [8481302]博弈论 斯坦福game theory stanford week 1