JAVA基础学习入门
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基础学习入门相关推荐
- Java基础小白入门教程-----百知教育java基础学习1---胡鑫喆
Java基础小白入门教程(胡大大出品,彩蛋请自寻) 胡鑫喆 https://www.bilibili.com/video/BV1wE411V7Zo?from=search&seid=38511 ...
- java基础学安卓开发_Android开发学习路线之Java基础学习
原标题:Android开发学习路线之Java基础学习 很多Android学习开发者刚入手Android开发技术时,稍微有点迫切.任何的开发技术都有其基础语言,Android应用程序开发是以Java语言 ...
- 尚学堂JAVA基础学习笔记_2/2
尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...
- java编程学习入门
java编程学习入门 自java出来之后,就被很多人欢迎,虽然开始的时候有点麻烦,但是发展到现在很多人企业都在使用java做一些应用,包括了一些政府部门,因此java工程师需求也越来越大了.那么下面小 ...
- java基础学习整理(一)
java基础学习整理(一) lesson1: D0s命令: 1.回到根目录,>cd \ 2.复制命令行下的内容,右击标记所要复制的内容,这样就已经复制好了,右击粘贴就可以了. 3.查看,设置环境 ...
- 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结
Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 4.1 class作为成员变量 4.2 interface作为成 ...
- Java中大数据数组,Java基础学习笔记之数组详解
摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...
- Java基础学习:尚硅谷项目三 开发团队调度软件
Java基础学习:尚硅谷项目三 开发团队调度软件 一.软件功能与结构设计 1. 软件功能 该软件实现以下功能: 软件启动时,根据给定的数据创建公司部分成员列表(数组) 根据菜单提示,基于现有的公司成员 ...
- Java基础学习汇总
Java基础学习汇总 java语言基础 java函数和数组 java面向对象 java异常 整理用,早就停更... 写作不易,如果您觉得写的不错,欢迎给博主点赞.收藏.评论.收藏来一波~让博主更有动力 ...
最新文章
- SetProcessWorkingSetSize 降低程序运行内存
- 如何用Curl 来post xml 数据
- 米聊PK微信:微信是一朵奇葩
- 作者:吴书(1982-),男,中国科学院自动化研究所助理研究员
- java、python什么意思_Python为什么叫Python,Java又如何而来?
- 阿里工程师手把手教你设计 B 端垂类营销中心!
- Leetcode 385.字典序排序
- matlab 暴雨强度公式,利用MATLAB推导城市暴雨强度公式
- linux重启tomcat进程,Linux系统重启tomcat服务的方法详解
- 如何使用matlab绘制晶胞结构示意图
- 【设计心理学】格式塔理论
- 中国目前拥有的人造卫星的种类及其作用
- python识别文字位置_如何利用Python识别图片中的文字
- Android JSON:Gson,FastJson解析库的使用和对比分析
- python二级考试笔记_Python二级考试临时抱佛脚专用笔记——(一)数据表示与计算...
- 手动删除oracle数据库
- 小米生态链企业商米科技完成数亿元C+轮融资,蚂蚁金服投资...
- linux IRQ Management(五)- irq_desc
- python对文件进行tar和gz格式的压缩和解压缩(亲测,可用)
- linux与 win上装pyhive
热门文章
- 07.RabbitMQ处理幂等性
- Java String.contains()方法
- HtmlUnit使用体会
- logstash-plugin install报错message: certificate verify failed
- Tomcat安装与部署
- matlab去除图像背景,从图像中移除背景(首选MATLAB、Java或Python)
- linux中system函数
- 谷歌浏览器解决跨域问题 --disable-web-security --user-data-dir
- zemax模拟ld_使用ZEMAX序列模式模拟激光二极管光源
- 【小程序】小程序起步、WXML模板语法和WXSS模板样式