Java基础
2021/6/7 20:53:59
本文主要是介绍Java基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.注释
书写注释是一个非常好的习惯
平时写代码注意规范
Java中的注释有三中
- 单行注释
- 多行注释
- 文档注释
public class Gun { public static void main(String[] args) { //单行注释:用于解释单行(不被执行) //System.out.println("Hello,World!"); //多行注释(/*开头 */结尾)用于解释多行(不被执行) /* System.out.println("Hello,World!"); */ //JavaDos:文档注释(/**开头 */结尾)是有功能的,可以加一些参数 /** * *@Description HelloWorld * */ } }
2.标识符和关键字
标识符
-
关键字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-spBDngM4-1623063031731)(D:\遇见狂神说\图片\QQ截图20210514171251.png)]
Java 所有的组成部分都需要名字。类名 、变量名以及方法名都被称为标识符
标识符注意点
-
所有标识符都应该以英文字母(包括大小写)、美元符号($)或者下划线(_)开始。
-
不能使用关键字作为变量名和方法名。
-
标识符是大小写敏感的。
3.数据类型
强类型语言(安全性高、速度低)
- 要求变量的使用要严格符合规定,所有变量要先定义后使用。
弱类型语言(安全性低、速度高)
Java的数据类型分为两类
基本类型
基本数据类型(Primitive type)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ypSkGsMD-1623063031733)(D:\遇见狂神说\图片\QQ截图20210514171513.png)]
定义Long和float时不同
long a = 26L;
float b = 3.14f;
public class Gun { //Gun是一个类名 public static void main(String[] args) { //String[] args是参数 main是一个主方法 //整形 byte a = 10; //byte是变量类型 a是标识符 short b = 20; int c = 30; long d = 40L; //在后面加一个L或者l,因为小写的l像1所以尽量用大写 //小数:浮点数 float e = 3.14F; //在后面加一个F或者f double n = 3.1415; //字符 char k = 'M'; //字符串:String不是关键字,是类 String p = 'month'; //布尔值 boolean flag = true; //boolean flag = false } }
引用类型(reference type)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-828BgAg5-1623063031735)(D:\遇见狂神说\图片\QQ截图20210514171535.png)]
什么是字节
- 位(bit) :是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数
- 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示
- 1B(byte,字节)= 8bit(位)
- 字符:是指计算机中使用的字母、数字、字和符号
- 1024B = 1KB
- 1024KB = 1M
- 1024M = 1G
- 1024G = 1TG
4.数据类型拓展及面试题讲解
public class Gun { public static void main(String[] args) { //整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x int i = 10; int i2 = 010; //八进制0 int i3 = 0x10; //十六进制0x 0~9 A~F System.out.println("i"); //10 System.out.println("i2"); //8 System.out.println("i2"); //16 System.out.println("==============================="); //========================================================== //浮点数拓展? 银行业务怎么表示? 钱 //BigDecimal 数学工具类 //========================================================== //float 有限 离散 舍入误差 大约 接近但不等于 //double //最好完全使用浮点数进行比较 //最好完全使用浮点数进行比较 //最好完全使用浮点数进行比较 float f = 0.1f; //0.1 double d = 0.1; //0.1 System.out.println("f==d"); //false System.out.println("f"); //0.1 System.out.println("d"); //0.1 (侧方圆点,上方运行旁边有个调试,运行到圆点结束) float d1 = 123123123123123f; float d2 = d1 + 1; System.out.println("d1==d2"); //true System.out.println("=================================="); //================================================== //字符拓展? //================================================== char c1 = 'a'; char c2 = '中'; System.out.println(c1); //a System.out.println((int)c1); //强制转换 97 System.out.println(c2); //中 System.out.println((int)c2); //强制转换 20013 //所有的字符本质还是数字 //编码 Unicode 表: 97 = a 65 = A 2字节 0 ~ 65536 Excel 2 16 = 65536 // U0000 UFFFF char c3 = '\u0061'; System.out.println(c3); //a //转义字符 // \t 制表符 // \n 换行 //.......... System.out.println("Hello\tWorld"); //Hello world System.out.println("Hello\nWorld"); /*hello World*/ System.out.println("=========================================="); String sa = new String(original:"HelloWorld"); String sb = new String(original:"HelloWorld"); System.out.println(sa==sb); //false String sc = "hello world"; String sd = "hello world"; System.out.println("Hello\tWorld"); //true //对象 从内存分析 //布尔值拓展 boolean flag = true; if (flag==true){} //新手 if (flag){} //老手 //Less is More! 代码要精简易读 } }
5.类型转换
由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wqmQfnCC-1623063031736)(D:\遇见狂神说\图片\QQ截图20210514171741.png)]
运算中,不同类型的数据先转化为同一类型,然后进行运算
强制类型转换
自动类型转换
public class Demo05 { public static void main(String[] args) { int i = 128; byte b = (byte)i; //内存溢出 double c = i; //强制转换 (类型)变量名 高--低 //自动转换 低--高 System.out.println(i); //128 System.out.println(b); //-128 内存溢出 System.out.println(c); //128 /* 注意点 1. 不能对布尔值进行转换 2. 不能把对象类型转换为不相干的类型 3. 在把高容量转换到低容量的时候,强制转换 4. 转换的时候可能存在内存溢出,或者精度问题! */ System.out.println("====================================="); System.out.println((int)23.7); //23 System.out.println((int)-45.89f); //-45 System.out.println("======================================="); char c = 'a'; int d = c+1; System.out.println(d); //98 System.out.println((char)d); //b } }
public class Demo06 { public static void main(String[] args) { //操作比较大的数的时候,注意溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money = 10_0000_0000; int years = 20; int total = money*years; //-1474836480 ,计算的时候溢出了 long total2 = money*years; //默认是int,转换之前已经存在问题了? long total3 = money*((long)years); System.out.println(total3); //20000000000 //大写L 小写l容易看成1,所以尽量用大写的L } }
6.变量
变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和作用域。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XsptUVgs-1623063031737)(D:\遇见狂神说\图片\QQ截图20210514171816.png)]
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型(String)
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
public class Demo07 { public static void main(String[] args) { //int a,b,c; //int a=1,b=2,c=3; //程序的可读性 int a = 1; //基本类型 int b = 2; int c = 3; char x = 'x'; double pi = 3.14; String name = "qinqin"; //引用类型 } }
变量作用域
类变量
实例变量
局部变量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mEfEeXb5-1623063031738)(D:\遇见狂神说\图片\QQ截图20210514171921.png)]
public class Demo08 { //类变量 static static double salsry = 2500; //属性:变量 //实例变量:从属于对象; 如果不自行初始化,这个类型的默认值 0 0.0 //布尔值:默认是false //除了基本类型,其余的默认值都是null String name; int age; //main方法 public static void main(String[] args) { //局部变量:必须声明和初始值 int i = 10; System.out.println(i); //变量类型 变量名字 = new Demo08(); Demo08 demo08 = =new Demo08(); System.out.println(demo08.age); //0 System.out.println(demo08.name); //null //类变量 static System.out.println(salary); } //其他方法 public void add() { System.out.println() } }
常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S9JMuGvi-1623063031739)(D:\遇见狂神说\图片\QQ截图20210514172007.png)]
常量名一般使用大写字母
public class Demo09 { //修饰符,不存在先后顺序 static 和 final static final double PI = 3.14; public static void main(String[] args) { System.out.println(PI); } }
变量的命名规范
所有变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写lastName
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则:Man,GoodMan
方法名:首字母小写和驼峰原则:run(),runRun()
运算符 优先级()
Java语言支持如下运算符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7mRxARcl-1623063031739)(D:\遇见狂神说\图片\QQ截图20210515154900.png)]
主要是前四类
public class Demo10 { public static void main(String[] args) { //二元运算符 //Ctrl + D : 复制当前行到下一行 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a+b); //30 System.out.println(a-b); //-10 System.out.println(a*b); //200 System.out.println(a/(double)b); //0.5 }}
public class Demo11 { public static void main(String[] args) { long a = 1232123123L; int b = 123; short c = 10; byte d = 8; System.out.println(a+b+c+d); //结果为long System.out.println(b+c+d); //结果为int System.out.println(c+d); //结果为int }}
public class Demo12 { //关系运算符返回的结果: 正确 ,错误 布尔值 // if int a = 10; int b = 20; int c = 21; //取余:模运算 System.out.println(c%a); //1 // c / a 21 / 20 = 2......1 System.out.println(a>b); //false System.out.println(a<b); //true System.out.println(a==b); //false System.out.println(a!=b); //true }}
自增自减运算符、初识Math类
package operator;public class Demo04 { public static void main(String[] args) { //++ -- 自增 , 自减 一元运算符 int a = 3; int b = a++; //执行完这行代码后,先给b赋值,再自增 //a++ a = a + 1 System.out.println(a); //4 //a++ a = a + 1 int c = ++a; //执行完这行代码前,先自增,再给b赋值 System.out.println(a); //5 System.out.println(b); //3 System.out.println(c); //5 //幂运算 2^3 2*2*2 = 8 很多运算,我们会使用一些工具来操作 double pow = Math.pow(2, 3); System.out.println(pow); //8.0 }}
逻辑运算符、位运算符
package operator;//逻辑运算符public class Demo05 { public static void main(String[] args) { // 与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b:"+(a&&b)); //false System.out.println("a || b:"+(a||b)); //true System.out.println("!(a && b):"+!(a&&b)); //true //短路运算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); //false System.out.println(c); //5 }}
package operator;public class Demo06 { public static void main(String[] args) { /* A = 0011 1100 B = 0000 1101 ------------------------------------ A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~B = 1111 0010 2*8 = 16 2*2*2*2 效率极高!!! << *2 >> /2 0000 0000 0 //逢二进一 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); //16 }}
三元运算符及小结
package operator;public class Demo07 { public static void main(String[] args) { int a = 10; int b = 20; a+=b; //a = a + b System.out.println(a); //30 a-=b; //a = a - b System.out.println(a); //10 //字符串连接 + , String System.out.println(""+a+b); //1020 System.out.println(a+b+""); //30 }}
package operator;//三元运算符public class Demo08 { public static void main(String[] args) { // x ? y : z //如果x==true, 则结果为y, 否则结果为z int score = 50; String type = score < 60 ?"不及格":"及格"; //必须掌握 // if System.out.println(type); //不及格 }}
包机制
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
包语句的语法格式为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H23nvFQK-1623063031740)(D:\遇见狂神说\图片\QQ截图20210516144301.png)]
一般利用公司域名倒置作为包名;(com.baidu.www)
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jS09ofJH-1623063031741)(D:\遇见狂神说\图片\QQ截图20210516144309.png)]
package com.kuang.operator;//导入这个包下所有类!import com.kuang.base.*;import java.util.Data;public class Demo08 { public static void main(String[] args) { Date }}
《阿里巴巴Java开发手册》
JavaDoc生成文档
JavaDos
javadoc命令是用来生成自己的API文档的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8raAAH0d-1623063031741)(D:\遇见狂神说\图片\QQ截图20210516145451.png)]
参数信息
- @author 作者名
- @version 版本号
- @siince 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
- JDK帮助文档(百度搜索)
package com.kuang.base;/** * @author kuangsgen * @version 1.0 * @since 1.8 */public class Doc { String name; /** * @author kuangsgen * @version 1.0 * @since 1.8 */ public String test(String name) throws Exception{ return name; } //我是通过命令行 javadoc 参数 Java文件 //作业:学会查找使用IDEA生产JavaDoc文档! 面向百度编程!}
这篇关于Java基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略