Java基础语法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java基础语法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7655字,纯文字阅读大概需要11分钟。
内容图文
Java基础语法
注释
单行注释 //后加注释内容
多行注释 /* 加注释内容 */
文档注释JavaDoc /** 加内容 */
标识符
关键字
注意点
- 标识符都应该以字母(A-Z或a-z),美元符($),或下划线(_)开始
- 首字符后可以是字母(A-Z或a-z),美元符($),下划线(_)或数字的任何组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
数据类型
- 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义再使用 -java,c++
- java的数据类型分为两大类
-
基本类型:
a.数值类型
? 整数类型:byte占1个字节范围
? short占2个字节范围
? int占4各字节范围,最常用
? long占8个字节范围,常在数字后加L
? 浮点类型:float占4个字节,常在数字后加F
? double占8个字节
? 字符类型:char占2个字节,只能用单引号;string不是关键词,它是一个引用类型,只能跟双引号
b. boolean类型:占1位,只含true或false
-
引用类型:
a.类
b.接口
c.数组
字节与位
- 位(bit):计算机内部最小储存单位,11001100是一个八位二进制数
- 字节(byte):计算机中数据处理的基本单位,常用B表示
- 1B=8bit
- 字符:计算机中使用的字母,数字,字和符号
整数拓展
//二进制:0b开头
//十进制:生活中的数
//八进制:0开头
//十六进制:0x开头
int i=10; //输出10
int i=010; //输出8
int i=0x10; //输出16
int i=0x11; //输出17
浮点数拓展
float,double类型是有限字长,数据是离散的,存在舍入误差,只是大约数据,接近却不等于
最好完全避免使用浮点数进行比较
数据比较一般使用BigDecimal类
字符拓展
char c1='a';
char c2='中';
System.out.println((int)c1);
//此时输出97
System.out.println((int)c2);
//此时输出20013
(int)c这一步骤是对字符进行强制转换,操作方法为(类型)变量名
所有的字符本质还是数字
底层编码:Unicode表(例;97=a,65=A),2个字节,表示范围0~65536
转义字符:1.\t 制表符
? 2.\n 换行 ........
布尔值扩展
boolean flag=true;
if( flag=true);{}
if( flag);{}
这两个if语句是完全等价的,默认进行判断
类型转换
- java是强类型语言,在有些运算时需要类型转换
不同类型的数据应该转为同一类型,再进行运算
- 低-------------------------------------------------------------------------高(容量)
byte,short,char------>int------>long------>float------>double
-
强制转换 (类型)变量名 高--->低
自动转换 低--->高
-
注意点
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干类型
3.在把大容量转换为低容量时需要强制转换,反之不用
4.转换的时候可能存在内存溢出,或者精度问题
int i=128; byte b=(byte) i; System.out.println(i); //此时i输出128 System.out.println(b); //此时b输出-128
(byte) i;这一步发生内存溢出,因为byte类型最高到127,应避免出现内存溢出
System.out.println(23.4); //此时输出23.4 System.out.println((int)23.4); //此时输出23 System.out.println(-45.86f); //此时输出-45.86 System.out.println((int)-45.86f); //此时输出-45
在进行浮点数转换时出现精度问题*
5.操作比较大的数的时候,注意溢出问题
int a=20_0000_0000; //JDK7新特性,数字之间可以用下划线分隔 int b=30; int c=a*b; System.out.println(c); //此时输出-129542144,出现溢出问题 long d=a*b; System.out.println(d); //输出-129542144,因为定义a,b时为int类型,所以 在转换之前已经溢出 long e=a*(long)b; System.out.println(e); //输出60000000000,在计算前先将int类型强制转化 为long类型,强制转换对a或b或全部都可
变量
-
理解:变量类比于一片空间或位置,而值类比于空间中的东西
-
java是强类型语言,每个变量都必须声明类型,类型可以是基本类型,也可以是引用类型
-
java变量是最基本的储存单元,其要素包括变量名,变量类型和作用域
? 变量作用域包括类变量,实例变量和局部变量
public class Demo1 { //这是一个类----Demo1 static double salary=2500; // 类变量,数据类型前加static,从属于类,和类一起存在消失 String name; int age; //实例变量,作用于具体类中,具体方法外,从属于对象 boolean question; public static void main(String[] args) { //这是一个main方法 int a=10; //局部变量,作用于具体方法中,离开此方法则失效 //变量类型 变量名字 具体值 Demo1 demo1 = new Demo1(); //要在方法中用实例变量必须如此 // 快捷键alt+回车 System.out.println(demo1.age); //输出0,因为没给赋初始值,会变为默认值 System.out.println(demo1.name); //输出null,同样原因 System.out.println(demo1.question); //输出false, } public void add() { //其他方法,add方法 System.out.println(salary); //不用采取实例变量那种操作,直接可以输出 } }
常量
- 初始化后不能再改变值!
- 常量可以理解为一种特殊变量,其值被设定后,在程序运行过程中不允许被改变
final 常量名=值;
例 final int A=3;
- 常量名一般使用大写字符
命名规范
- 所有的变量,方法,类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则:monthSalary
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:MonthSalary
- 方法名:首字母小写和驼峰原则:add(),addMoney()
运算符
-
算术运算符:+, -, *, /, %(取余,叫做模运算), ++, --
- 除法运算时可能会产生小数,故需要强制转换
-
在加法运算中,不同类型的数据相加,在含有long类型时,输出默认为long类型;反之都为int类型
- b=a++:先把a赋值给b,a再自增
-
b=++a:a先自增,再赋值给b
-
很多运算,我们会使用一些工具类来操作,例如Math类
-
辅助运算符:=
-
关系运算符:>, <, >=, <=, ==(等于), !=instanceof 返回值为boolean值,即true,fse
-
逻辑运算符:&&, ||, !
boolean a=true; boolean b=false; System.out.println(a && b); //输出false //与运算:同真得真 System.out.println(a || b); //输出true //或运算:有真得真 System.out.println(a && b); //输出true //非运算:真假假真
与运算中的短路运算
int c=5; boolean d=(c<4) && (c++<4); System.out.println(d); System.out.println(c); 输出 false //第一步中c=5已经小于4,直接省去第二步,输出false 5 //如果没有省,则c++后为6,但输出为5,故省去
? 在与运算中,如果第一项为false,则会略去第二步,直接判定为false
-
位运算符:&, |, ^, ~, >>, <<, >>>(了解)
A=0011 1100 B=0000 1101 ----------------- A & B=0000 1100 //与运算:同1得1 A | B=0011 1101 //或运算:有1得1 A ^ B=0011 0001 //异或运算:同0异1 ~ B= 1111 0010 //非运算:0110
关于左移右移得面试题
/* 计算机中怎样计算2*8=16最快? 2*2*2*2=16 分 析: 0000 0000 0 0000 0001 1 0000 0010 2 0000 0100 4 0000 1000 8 0001 0000 16 在二进制中1这一位左移一位,对应于十进制中乘以2 结 果: 利用左移运算<<,给2左移三位,即给2乘以三个2 */ System.out.println(2<<3); //输出16 /* 结 论:<<一次对应于乘以2 >>一次对应于除以2 */
-
条件运算符:?:
/*
x?y:z
如果x=true,则输出y,否则输出z
*/
int score1=50;
String type1=score1<60?"不及格":"及格";
System.out.println(type1);
//输出
不及格
int score2=70;
String type2=score2<60?"不及格":"及格";
System.out.println(type2);
//输出
及格
-
扩展赋值运算符:+=, -=, *=, /=
a+=b; //a=a+b a-=b; //a=a-b
补充 字符串连接符
int a=10;
int b=20;
System.out.println("abc"+a+b); //当+左端出现string类型,则会把右端的数转为 string类型,并且进行连接
//输出
abc1020
int a=10;
int b=20; //反之,当+右端出现string类型时,左边运算则不受影响,并且进行连接
System.out.println(a+b+"abc");
//输出
30abc
可以想象成从左到右进行作用
包机制
包的本质就是文件夹
- 为了更好地组织类,java提供了包机制,用于区别类名的命名空间
- 包语句的语法格式为:
Package pkg1[.pkg2[.pkg3...]];
- 一般利用公司域名倒置作为包名 例如:com.baidu.www com.li.base com.li.exercise
- 为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,使用"import"语句可完成
import com.lizhao.base.Demo02; //在base下的Demo02中导入exercise下的Demo01
import com.lizhao.base.*; //*为通配符,导入这个包下所有的类
JavaDoc----一种注释
- javadoc命令是用来生成自己API文档的
- 参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的JDK版本
- @param参数名
- @return返回值情况
- @throws异常抛出情况
/**
* @author lizhao
* @version 1.0 这段注释是加在类上边的
* @since 1.8
*/
public class Demo01 {
String name;
/**
*
* @param name 这段注释是加在方法上边的,且是自动生成的
* @return
*/
public String test(String name){
return name;
生成 javadoc文档
1.通过命令行:javadoc 参数 Java文件
2.通过IDEA
? a. 点击 Tools-> Generate JavaDoc
? b.
内容总结
以上是互联网集市为您收集整理的Java基础语法全部内容,希望文章能够帮你解决Java基础语法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。