从头学Java基础篇(一)

2024-03-29 15:58
文章标签 java 从头 基础

本文主要是介绍从头学Java基础篇(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java基础

注释

  1. 单行注释

    //这是单行注释
    
  2. 多行注释

    /*
    1这里是多行注释
    2这里是多行注释
    3这里是多行注释
    4这里是多行注释
    */
    
  3. 文档注释(JavaDoc)

    /**
    * @Description:HelloWorld
    * @Author:TheBeacon
    */
    

标识符

Java对所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

  • 所有的标识符都应该以字母(A-Z或a-z),美元符($),或者下划线(_)开始。

  • 首字符之后可以是以字母(A-Z或a-z),美元符($),或者下划线(_)或数字的任何字符组合

不能使用关键字作为变量名或方法名。

  • 标识符是大小写敏感的。

  • 合法标识符举例:age,$salary,_value,_1_value

  • 非法标识符举例:123abc,-salary,#abc

可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

数据类型

强类型语言:

  • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。

弱类型语言:

  • 不要求变量的使用要严格符合规定

Java的数据类型分为两大类:

  • 基本类型(primitive type):

    1. 数值类型:

      ​ 整数类型:byte(1),short(2),int(4),long(8)

      ​ 浮点类型:float(4),double(8)

      ​ 字符类型:char(2)

    2. boolean类型:占一位,其值只有falsetrue两个

      public class Demo01 {public static void main(String[] args) {//八大基本数据类型//整数int num1 = 10;byte num2 = 20;short num3 = 30;long num4 = 40L;//long类型要在数字后面加个L//小数:浮点数float num5 = 50.1f;//float类型要在数字后面加个fdouble num6 = 3.14159265358;//字符char name = 'A';//字符串 String不是关键字,是类String name1 = "TheBeacon";//布尔值boolean flag = true;}
      }
  • 引用类型(reference type):

    类,接口,数组

数据类型拓展

public class Demo02 {public static void main(String[] args) {//整数拓展:进制  二进制0b  十进制  八进制0  十六进制0xint i = 10;int j = 010;  //八进制0int k = 0x10;  //十六进制0xSystem.out.println(i);System.out.println(j);System.out.println(k);System.out.println("======================================");//===============================================//浮点数扩展 银行业务怎么表示?¥// BigDecimal  数学工具类//float 有限      离散      舍入误差    大约  接近但不等于//double//最好避免使用浮点数进行比较//最好避免使用浮点数进行比较//最好避免使用浮点数进行比较float f = 0.1f; //f:0.1double d = 1.0 / 10;//d:0.1System.out.println(f == d);//falseSystem.out.println(f);System.out.println(d);float d1 = 2323232323232232323f;float d2 = d1 + 1;System.out.println(d1 == d2);//trueSystem.out.println("======================================");//===============================================//字符拓展//===============================================char c1 = 'a';char c2 = '中';System.out.println(c1);System.out.println((int)c1);//强制转型System.out.println(c2);System.out.println((int)c2);//所有字符本质还是数字//编码 Unicode 表:97 = a 2字节 0 - 65536  Excel 2^16 = 65536// U0000 - UFFFFchar c3 = '\u0061';System.out.println(c3);//a//转义字符//\t 制表符// \n 换行//字符串 StringString sa = new String("hello world");String sb = new String("hello world");System.out.println(sa == sb);//falseString sc = "hello world";String sd = "hello world";System.out.println(sc == sd);//true//对象	从内存分析}
}

类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换

    -------------------------------------byte,short,char->int->long->float->double
    

    运算中,不同类型的数据先转化为同一类型,然后进行计算。

public class Demo03 {public static void main(String[] args) {int i = 128;//i: 128//强制转换 (类型)变量名 高->低byte b = (byte)i;//内存溢出System.out.println(b);// b: -128//自动转换 低->高double d = i;/** 注意点:* 1.不能对布尔值进行转换* 2.不能把对象类型转换为不相干的类型* 3.在把高容量转换到低容量的时候,强制转换* 4.转换的时候可能存在内存溢出,或者精度问题!* */System.out.println("==================================");System.out.println((int)23.7);//23System.out.println((int)-45.62f);//-45System.out.println("==================================");char c = 'a';int d1 = c + 1;System.out.println(d1);System.out.println((char)d1);}
}

在计算大数的时候注意先把类型不匹配问题解决掉。

public class Demo04 {public static void main(String[] args) {//操作比较大的数的时候,注意溢出问题//JDK7新特性,数字之间可以用下划线_分割int money = 10_0000_0000;//1000000000int years = 20;int total = money * years;System.out.println(total);//-1474836480,计算的时候溢出了long total2 = money * years;//默认是int,转换之前已经存在问题了System.out.println(total2);long total3 = money * (long)years;//先把一个数转换为longSystem.out.println(total3);//L     l和1容易分不清}
}

变量

  • 变量是什么:就是可以变化的量。

  • Java是一种强类型语言,每个变量都必须声明其类型。

  • Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和 作用域

    变量作用域:

    • 类变量

    • 实例变量

    • 局部变量

      public class Demo05 {//类变量   staticstatic double salary = 2500;//属性:变量//实例变量:从属于对象;如果不进行初始化,这个类型的默认值//布尔值:默认是false//除了基本类型,其余的默认值都是nullString name;//默认为nullint age;//默认为0static {//作用域高}//main方法public static void main(String[] args) {//局部变量:必须声明和初始化int i = 10;System.out.println(i);Demo05 demo08 = new Demo05();System.out.println(demo08.name);//类变量 staticSystem.out.println(salary);}//其他方法public void add() {}
      }

注意事项

  • 每个变量都有类型,可以是基本类型,也可以是引用类型。
  • 变量名必须是合法标识符。
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary,lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

常量

**常量(Constant):**初始化(initialize)之后不能再改变值!不会变动的值。

final 常量名 = 值;
final double PI = 3.14;

常量名一般使用大写字符。

public class Demo06 {//static和final是修饰符,不存在先后顺序static final double PI = 3.14;public static void main(String[] args) {System.out.println(PI);}
}

运算符

Java语言支持如下运算符:

  • 算术运算符:+,-,*,/,%,++,–
  • 赋值运算符:=
  • 关系运算符:>,<,<=,>=,==,!=,instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
  • 条件运算符:?:
  • 扩展赋值运算符:+=,-=,*=,/=

二元运算符

package operator;public class Demo01 {public static void main(String[] args) {//二元运算符int a = 10;int b = 20;int c = 30;int d = 40;System.out.println(a + b);System.out.println(a - b);System.out.println(a * b);System.out.println(a / (double)b);//不转型为0}
}

自动转型

package operator;public class Demo02 {public static void main(String[] args) {long a = 12123123123131L;int b = 123;short c = 10;byte d = 8;System.out.println(a + b + c + d);//LongSystem.out.println(b + c + d);//IntSystem.out.println((c + d));//Int}
}

关系运算

package operator;public class Demo03 {public static void main(String[] args) {//关系运算返回的结果:正确,错误 布尔值int a = 10;int b = 20;int c = 21;System.out.println(c % a);// c / a    21 / 10 = 2 ···1System.out.println(a > b);System.out.println(a < b);System.out.println(a == b);System.out.println(a != b);}
}

自增自减及幂运算

package operator;public class Demo04 {public static void main(String[] args) {//++    --      自增  自减  一元运算符int a = 3;int b = a++;//先给b赋值,再自增//a++ a = a + 1System.out.println(a);//4//++a a = a + 1int c = ++a;//先自增,再给c赋值System.out.println(a);//5System.out.println(b);//3System.out.println(c);//5//幂运算 2^3   2 * 2 * 2 = 8   很多运算,我们会使用一些工具类来操作double pow = Math.pow(2,3);System.out.println(pow);}
}

逻辑运算符

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));//逻辑与运算:两个变量都为真,结果才为trueSystem.out.println("a || b:" + (a || b));//逻辑或运算:两个变量有一个为真,其结果才为trueSystem.out.println("! (a && b):" + !(a && b));//逻辑非运算:结果为真,则变为假//短路运算int c = 5;boolean d = (c < 4) && (c++ < 4);System.out.println(d);//falseSystem.out.println(c);//5}
}

位运算和移位运算

package operator;public class Demo06 {public static void main(String[] args) {/*A = 0011 1100B = 0000 1101A & B = 0000 1100 按位与运算A | B = 0011 1101 按位或运算A ^ B = 0011 0001 按位异或运算:相同为0,不同为1~B = 1111 0010 全部取反运算怎么算最快:2 * 8 = 16 --> 2 * 2 * 2 * 2<<  左移  *2>>  右移  /2二进制        十进制0000 0000       00000 0001       10000 0010       20000 0011       30000 0100       40000 1000       80001 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 + ba -= b ;//a = a - bSystem.out.println(a);//字符串连接符    +   StringSystem.out.println(a + b);//30System.out.println("" + a + b);//1020System.out.println(a + b + "");//30}
}

三元运算符

package operator;//三元运算符
public class Demo08 {public static void main(String[] args) {//X ? Y : Z//如果X = true,则结果为Y,否则为Zint score = 80;String type = score < 60 ? "不及格" : "及格";//必须掌握//if判断System.out.println(type);//及格}
}

包机制

  • 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。

  • 包语句的语法格式为:

    package pkg1[.pkg2[.pkg3...]];
    
  • 一般利用公司域名倒置作为包名;

  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能

    import package1[.package2...].(classname|*);
    

JavaDoc

  • JavaDoc命令是用来生成自己API文档的。

  • 命令:javadoc -encoding UTF-8 -charset UTF-8 Doc.java

  • 在这里插入图片描述

  • 参数信息

    • @author 作者名
    • @version 版本号
    • @since 指明需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况

使用IDEA生成JavaDoc文档

JavaDoc是一种将注释生成HTML文档的技术,生成的HTML文档类似于Java的API,易读且清晰明了。在简略介绍JavaDoc写法之后,再看一下在Intellij Idea 中如何将代码中的注释生成HTML文档。

IDEA如何配置后生成JavaDoc文档

  • one

在这里插入图片描述

  • two

在这里插入图片描述

  • 解释一哈:

    1. 选择是整个项目还是模块还是单个文件

    2. 文档输出路径

    3. Locale 选择地区,这个决定了文档的语言,中文就是zh_CN

    4. 传入JavaDoc的参数,一般这样写 -encoding UTF-8 -charset UTF-8 -windowtitle “文档HTML页面标签的标题” -link http://docs.Oracle.com/javase/7/docs/api

  • 控制台输出:

    在这里插入图片描述

这样就生成到指定位置了,找到***index.html***打开就可看到生成的文档了!

这篇关于从头学Java基础篇(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/859018

相关文章

Java基础(4)重载和重写

在Java中,重载(Overloading)和重写(Overriding)是两种允许我们以不同的方式使用相同的方法名的机制,但它们在使用场景、目的和规则上有着本质的区别。 重载(Overloading) 重载发生在同一个类中,它允许多个方法有相同的名字,但是它们的参数列表必须不同(参数的数量不同、类型不同或参数的排列顺序不同)。 代码演示 class DemoClass {// 方法重载:

Java基础(3)String、StringBuffer、StringBuilder

在Java中,字符串处理是日常开发的重要组成部分。主要有三种类型的类用于创建和操作字符串:String、StringBuffer和StringBuilder。虽然这三个类都能够处理字符串,但它们在功能和性能方面存在显著差异。 String String是不可变的(immutable)。每当对字符串进行修改时,实际上是创建了一个新的String对象。因此,频繁修改字符串会导致大量内存占用和最终的

后端学习记录~~JavaSE篇(Module08-异常 上 )

总览: Java概述: 思维导图文件在本人个人主页上-----资源模块 资源详情(免费下载):Java学习思维导图异常篇资源-CSDN文库https://download.csdn.net/download/m0_61589682/89238330 整体展示:

JAVA:后端框架-将servlet+jsp改为springboot+jsp需要做什么

目录 POJO(作为实体): 添加注释@Entity @Id  DAO(作为存储库):使用Spring Boot时,不需要具体的DAO实现或JdbcUtils COMMON(应用配置):JdbcUtils 与 JdbcTemplate bean(放入config包) exception(自定义异常) sercurity servlet :换为controller 操作

Java Properties类

属性类             Java     Properties类的继承关系如下:             java.lang.Object             +--java.util.Dictionary             +--java.util.Hashtable             +--java.util.Properties

IDEA新版本创建Spring项目只能勾选17和21却无法使用Java8的完美解决方案

想创建一个springboot的项目,使用Spring Initializr创建项目时,发现版本只有17~21,无法选择Java8。 我们知道IDEA页面创建Spring项目,其实是访问spring initializr去创建项目。我们可以通过阿里云国服间接创建Spring项目,将 https://start.spring.io/ 或者 http://start.springboot.io/ 替

Hadoop+Spark大数据技术(微课版)曾国荪、曹洁版思维导图第五次作业 第五章 Scala基础与编程

第五次作业 1. 简述Scala语言的基本特性 1. 面向对象:Scala是一种完全面向对象的语言。其每一种数据类型都是一个对象,这使得它具有非常统一的模型。 2. 函数式编程:Scala同时支持函数式编程,它拥有高阶函数、闭包、不可变数据结构、递归等函数式编程的关键特性。 3. 扩展性:Scala的语法非常灵活,允许开发者自定义运算符和语法糖。也支持模式匹配、类型推断和匿名函数等高

JVM的垃圾回收机制(GC机制)

在Java代码运行的过程中,JVM发现 某些资源不需要再使用的时候,就会自动把资源所占的内存给回收掉,就不需要程序员自行操作了。“自动回收资源”就是JVM的“垃圾回收机制”,“垃圾回收机制”也称"GC机制"。 对于Java代码来说,"垃圾回收机制"的回收对象就是"堆"上的对象。因为"栈"上的局部变量,跟随栈帧的生命周期,一个方法执行结束,栈帧销毁,内存也就释放了;"方法区"中的静态变量,跟随着"

MATLAB基础应用精讲-【数模应用】卡方分析

目录 算法原理 什么是卡方分析 卡方分析的计算 卡方分析能做什么

java案例-服务端与客户端(传输对象)

需求 代码 SysUser 用户类Operation 操作类Client 客户端Server 服务端ServerReaderThread 服务端线程类 SysUser 用户类 需要实现Serializable 方便序列化,传输对象 public class SysUser implements Serializable {private String username;p