JAVA入门之基本语法(一)

最近开始复习JAVA语言为找工作做准备,方便以后再次复习或者用到的时候回顾。先是从JAVA的基本语法学起,因为有c和c++语言的基础知识铺垫,所以这部分的笔记会比较粗略,毕竟语言都是贯通的嘛~

1.变量

1.1变量的使用

  • java定义变量的格式:数据类型 变量名 = 变量值
  • 说明:
    1.变量必须先声明,后使用
    2.变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了
    3.不可以在同一个作用域内定义同名的变量

1.2变量的数据类型

1.2.1整数类型:byte、short、int、long

  • java各整数类型有固有的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性
  • java的整型常量默认为int型,声明long型常量须后加“l”或“L”
  • java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
类型 占用存储空间 表数范围
byte 1字节=8bit位 -128~127
short 2字节 − 2 15 -2^{15} −215~ 2 15 − 1 2^{15}-1 215−1
int 4字节 − 2 31 -2^{31} −231~ 2 31 − 1 2^{31}-1 231−1
long 8字节 − 2 63 -2^{63} −263~ 2 63 − 1 2^{63}-1 263−1

1.2.2浮点类型:float、double

  • Java的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’
类型 占用存储空间 表数范围
单精度float 4字节 -3.403E38~3.403E38
双精度double 8字节 -1.798E308~1.798E308

1.2.3字符类型:char

  • char型数据用来表示通常意义上“字符"(2字节)
  • Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符
  • 字符型变量的三种表现形式:
    1.字符常量是用单引号(’’)括起来的单个字符,内部只能写一个字符
    2.Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量
    3.直接使用Unicode值表示字符型常量
  • char类型是可以进行运算的。因为它有对应的Unicode码

1.2.4字符类型:boolean

  • 只能取两个值之一:true、false
  • 常常在条件判断、循环结构中使用

1.3基本数据类型之间的运算规则

这里只讨论7种基本数据类型变量间的运算。不包含boolean类型。

1.3.1自动类型提升

当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。注意:此时的容量大小指的是,表示数的范围的大和小。比如:float容量大于long容量。
byte 、char 、short–>int–>long–>float–>double
特别的,当byte、char、short三种类型的变量做运算时,结果为int型

1.3.2强制类型转换(自动类型提升运算的逆运算)

  • 需要使用强制符:( )
  • 注意点:强制类型转换,可能会导致精度损失
class VariableTest3 {public static void main(Stringp[] args){double d1 = 12.9;//精度损失举例1int i1 = (int)d1;//截断操作System.out.println(i1);//12//没有精度损失long l1 = 123;short s2 = (short)l1;//精度损失举例2int i2 = 128;byte b = (byte)i2;System.out.println(b);//-128}
}
  • 整型常量,默认类型为int型号;浮点型常量,默认类型为double型。
class VariableTest4 {public static void main(Stringp[] args){byte b = 12;byte b1 = b + 1; //编译失败float f1 = b + 12.3; //编译失败}
}

1.4 String类型变量的使用

  • String属于引用数据类型,翻译为:字符串
  • 声明String类型变量时,使用一对“ ”
  • String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+
  • 运算结果仍然是String类型
class StringTest1 {public static void main(Stringp[] args){char c = 'a';//97 A:95int num = 10;String str = "hello";System.out.println(c + num + str); //107helloSystem.out.println(c + str + num); //ahello10System.out.println(c + (num + str)); //a10helloSystem.out.println((c + num) + str); //107helloSystem.out.println(str + num + c); //hello10aSystem.out.println("* *"); //* *System.out.println('*' + '\t' + '*'); //93System.out.println('*' + "\t" + '*'); //* *System.out.println('*' + '\t' + "*"); //51*System.out.println('*' + ('\t' + "*")); //* *}
}

2.关于进制

  • 所有数字在计算机底层都以二进制形式存在
  • 对于整数,有4种表示方式:
    1.二进制(binary):0,1,满2进1。以0b或0B开头
    2.十进制(decimal):0-9,满10进1
    3.八进制(octal):0-7,满8进1。以数字0开头表示
    4.十六进制(hex):0-9及A-F,满16进1。以0x或0X开头表示。此处的A-F不区分大小写。
  • Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位
  • 二进制的整数有如下三种形式:
    1.原码:直接将一个数值换成二进制数。最高位是符号位
    2.负数的反码:是对原码按位取反,只是最高位(符号位)确定为1
    3.负数的补码:其反码加1
  • 计算机以二进制补码的形式保存所有的整数
    1.正数的原码、反码、补码都相同
    2.负数的补码是其反码+1
  • 十进制—>二进制:除2取余的逆,其余进制之间的转换,自寻百度,非常简单

3.运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等等
Java中主要有:算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符、三元运算符

3.1 算数运算符、赋值运算符以及比较运算符:

运算符 运算 范例 结果
+ 正号 +3 3
- 负号 b=4;-b -4
+ 5+5 10
- 6-4 2
* b=4;-b -4
/ b=4;-b -4
% 取模(取余) b=4;-b -4
++ 自增(前):先运算后取值 a=2;b=++a; a=3;b=3
++ 自增(后):先取值后运算 a=2;b=a++; a=3;b=2
- - 自减(前):先运算后取值 a=2;b=- -a; a=1;b=1
- - 自减(后):先取值后运算 a=2;b=a- -; a=1;b=2
+ 字符串连接 “he”+“llo” “hello”
== 相等于 4==3 false
!= 不等于 4!=3 true
< 小于 4<3 false
> 大于 4>3 true
<= 小于等于 4<=3 false
>= 大于等于 4>=3 true
instanceof 检查是否是类的对象 “hello” instanceof String true

3.2 逻辑运算符:(逻辑运算符操作都是boolean类型的变量)

A B A&B A&&B A|B A||B !A A^B
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false

3.3 位运算符:(位运算是直接对整数的二进制的运算)

  • 位运算符操作的都是整型的数据
  • <<:在一定范围内,每向左移1位,相当于 * 2
  • >>:在一定范围内,每向右移1位,相当于 / 2
    面试题:最高效方式的计算2*8?===> 2<<3 或 8<<1
运算符 运算 范例
<< 左移 3<<2 = 12 --> 322=12
>> 右移 3>>1 = 1 --> 3/2=1
>>> 无符号右移 3>>>1= 1 --> 3/2=1
& 与运算 6&3 = 2
| 或运算 6|3 = 7
^ 异或运算 6^3 = 5
~ 取反运算 ~6 = -7
  • 位运算符的细节
运算符 细节
<< 空位补0,被移除的高位丢弃,空缺位补0
>> 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1
>>> 被移位二进制最高位无论是0或是1,空缺位都用0补
& 二进制位进行&运算,只有1&1时结果是1,否则是0
| 二进制位进行|运算,只有0|0结果是0,否则是1
^ 相同二进制位进行^运算,结果是0;1^1=0,0^0=0;不相同二进制位进^运算结果是1,1^0=1,0^1=1
~ 正数取反,各二进制码按补码各位取反;负数取反,各二进制码按补码各位取反

3.4 三元运算符:

  • 结构:(条件表达式)?表达式1 : 表达式2
  • 说明:
    1.条件表达式的结果为boolean类型
    2.根据条件表达式真或假,决定执行表达式1,还是表达式2。如果表达式为true,则执行表达式1;如果表达式为false,则执行表达式2
    3.条件表达式1和表达式2的结果是一致的
    4.三元运算符可以嵌套使用
    5.凡是可以使用三元运算符的地方,都可以改写成if-else,反之不成立
    6.既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符
     double num = (m > n) ? 2 : 1.0; //编译错误String maxStr = (m > n)?"m大"  : ((m==n) ? "m和n相等" : "n大");System.out.println(maxStr);

4.程序流程控制

4.1 顺序结构:

  • 程序从上到下逐行地执行,中间没有任何判断和跳转

4.2 分支结构:

  • 根据条件,选择性地执行某段代码
  • 有if-else和switch-case两种分支语句

4.3 循环结构:

  • 根据循环条件,重复性地执行某段代码
  • 有while、do…while、for三种循环语句
  • 注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素

最后希望大家多多关注我、支持我一下~~,我会持续更新关于JAVA语言的知识和大家一起分享的。

JAVA基础学习入门相关推荐

  1. Java基础小白入门教程-----百知教育java基础学习1---胡鑫喆

    Java基础小白入门教程(胡大大出品,彩蛋请自寻) 胡鑫喆 https://www.bilibili.com/video/BV1wE411V7Zo?from=search&seid=38511 ...

  2. java基础学安卓开发_Android开发学习路线之Java基础学习

    原标题:Android开发学习路线之Java基础学习 很多Android学习开发者刚入手Android开发技术时,稍微有点迫切.任何的开发技术都有其基础语言,Android应用程序开发是以Java语言 ...

  3. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  4. java编程学习入门

    java编程学习入门 自java出来之后,就被很多人欢迎,虽然开始的时候有点麻烦,但是发展到现在很多人企业都在使用java做一些应用,包括了一些政府部门,因此java工程师需求也越来越大了.那么下面小 ...

  5. java基础学习整理(一)

    java基础学习整理(一) lesson1: D0s命令: 1.回到根目录,>cd \ 2.复制命令行下的内容,右击标记所要复制的内容,这样就已经复制好了,右击粘贴就可以了. 3.查看,设置环境 ...

  6. 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结

    Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 4.1 class作为成员变量 4.2 interface作为成 ...

  7. Java中大数据数组,Java基础学习笔记之数组详解

    摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...

  8. Java基础学习:尚硅谷项目三 开发团队调度软件

    Java基础学习:尚硅谷项目三 开发团队调度软件 一.软件功能与结构设计 1. 软件功能 该软件实现以下功能: 软件启动时,根据给定的数据创建公司部分成员列表(数组) 根据菜单提示,基于现有的公司成员 ...

  9. Java基础学习汇总

    Java基础学习汇总 java语言基础 java函数和数组 java面向对象 java异常 整理用,早就停更... 写作不易,如果您觉得写的不错,欢迎给博主点赞.收藏.评论.收藏来一波~让博主更有动力 ...

最新文章

  1. SetProcessWorkingSetSize 降低程序运行内存
  2. 如何用Curl 来post xml 数据
  3. 米聊PK微信:微信是一朵奇葩
  4. 作者:吴书(1982-),男,中国科学院自动化研究所助理研究员
  5. java、python什么意思_Python为什么叫Python,Java又如何而来?
  6. 阿里工程师手把手教你设计 B 端垂类营销中心!
  7. Leetcode 385.字典序排序
  8. matlab 暴雨强度公式,利用MATLAB推导城市暴雨强度公式
  9. linux重启tomcat进程,Linux系统重启tomcat服务的方法详解
  10. 如何使用matlab绘制晶胞结构示意图
  11. 【设计心理学】格式塔理论
  12. 中国目前拥有的人造卫星的种类及其作用
  13. python识别文字位置_如何利用Python识别图片中的文字
  14. Android JSON:Gson,FastJson解析库的使用和对比分析
  15. python二级考试笔记_Python二级考试临时抱佛脚专用笔记——(一)数据表示与计算...
  16. 手动删除oracle数据库
  17. 小米生态链企业商米科技完成数亿元C+轮融资,蚂蚁金服投资...
  18. linux IRQ Management(五)- irq_desc
  19. python对文件进行tar和gz格式的压缩和解压缩(亲测,可用)
  20. linux与 win上装pyhive

热门文章

  1. 07.RabbitMQ处理幂等性
  2. Java String.contains()方法
  3. HtmlUnit使用体会
  4. logstash-plugin install报错message: certificate verify failed
  5. Tomcat安装与部署
  6. matlab去除图像背景,从图像中移除背景(首选MATLAB、Java或Python)
  7. linux中system函数
  8. 谷歌浏览器解决跨域问题 --disable-web-security --user-data-dir
  9. zemax模拟ld_使用ZEMAX序列模式模拟激光二极管光源
  10. 【小程序】小程序起步、WXML模板语法和WXSS模板样式