前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java的学习笔记(02)基础

Java的学习笔记(02)基础

作者头像
卢衍飞
发布2023-02-13 21:21:00
2640
发布2023-02-13 21:21:00
举报
文章被收录于专栏:技术分享交流技术分享交流

Java基础01:注释(书写注释是一个非常好的习惯) 单行注释 // //输出一个Hello world 多行注释 / / /*

代码语言:javascript
复制
多行注释多行所行

*/ 文档注释 /** *java doc *java doc *java doc */ Java基础02:标识型和关键字 重要Java关键字列表 abstract:它利用计算机来完成抽象。它是与类和方法相关的非访问修饰符。

enum:它利用Java描述enum。

instanceof:它用于知道对象是否是预定义写入(类、子类或接口)的情况。

private:它是一个访问修饰符。任何被宣布为私有的东西都不能在其类外看到。

protected:如果您需要使组件能够在当前类之外查看,那么,只需对特定于您的类的子类进行查看,此时将宣布该组件。

public: 任何人从任何地方都可以到达的地方。

访问修改函数 static:它用于使成员(块、方法、变量或嵌套类)可以独立于任何其他成员使用,而无需参考特定情况。

strictfp:用于限制、浮点、浮点运算和计算,并在浮点变量中执行任务时保证每个阶段的结果相同。

synchronized:它用于在Java中获得适用于块和方法的同步。

transient:作为序列化的一部分使用的因子修饰符。在序列化的季节,如果我们不想对记录中的特定变量进行多余的估计,那么此时,我们使用transient关键字。

volatile:如果修饰符告诉编译器,由不稳定变量调整的变量通过程序的不同部分发生惊人的变化,则使用volatile。

Java关键字的类型 Enum Enum有效地表示编程语言中命名常量的集合。例如,一副扑克牌中的四套西服可能有四个名为Club、Diamond、Heart和Spade的统计员,其中一个位置有一个名为西服的已识别类别。不同的插图结合了正常识别的构图(如行星、一周中的几天、色调、方位等)。

当我们在编译时知道每一个可能的值时,JavaEnum就可以利用它。例如,这可能包括菜单上的决策、调整模式、召唤线横幅等。枚举写入中常量的排列永远保持不变并不重要。

Strictfp关键字 strictfp是Java中的一个关键字,它利用限制浮点值,并在执行滑行点变量中的任务时保证每个阶段的结果相同。

浮点计算从属于平台,即当类文档在各种平台(16/32/64位处理器)上运行时,不同的输出(浮点变量)完成。为了解决这类问题,根据IEEE754滑行点计数指南,以JDK1.2的形式提出了strictfp口号。

Strictfp的重要关注点: Strictfp修饰符按原样使用类、接口和技术。

Strictfp无法使用独特的策略。尽管如此,它还是利用了理论类/接口。

由于接口的技术当然是动态的,strictfp不能与接口内的任何方法一起使用。

标识符注意点 所有标识符都应该以字母,或者美元符号($)或者下划线(_)开始 不能使用关键字作为变量名或者方法名 大小写非常敏感 不能以数字或者其他符号开头 可以使用中文名和拼音,但是不建议使用,不方便后期维护 Java基础03:数据型和关键字 基本数据类型 整数类型 byte 占1个字节(8位)

short 占2个字节(16位)

int 占4个字节(32位)

long 占8个字节(64位)

浮点数类型 float 4字节

double 8字节

字符类型 char 2字节

Boolean类型 1位:true false

public class demo02 {

代码语言:javascript
复制
public static void main(String[] args) {
    int num1 = 10;
    int num2 = 20;
    int num3 = 40;
    long num4 = 100L;   //Long 类型要在数字后加个L

    //小数:浮点数
    float num5 = 50.1F;    //float 类型要在数字后加个F

    //字符
    char name = 'A';
    char name3 = '张';

    //字符串
    String name2 = "张三";

    //布尔类型
    boolean flag = true;

}

} Java基础04 数据类型扩展及面试题 最好完全避免使用浮点数进行比较!!!!!!!! public class demo03 {

代码语言:javascript
复制
public static void main(String[] args) {
    //整数拓展  进制   二进制0b    十进制    八进制0    十六进制0x
    int i = 10;
    int i2 = 010;
    int i3 = 0x10;

    System.out.println(i);
    System.out.println(i2);
    System.out.println(i3);

    //===================================================================
    //浮点数拓展
    //===================================================================
    //float: 有限  离散  舍入误差 大约  接近但不等于
    //double
    //最好完全避免使用浮点数进行比较

    float f = 0.1f;
    double d = 0.1;

    System.out.println(f==d);   //判断是否相等 :false
    System.out.println(f);
    System.out.println(d);

    //字符

    char c1 = 'a';
    char c2 = '中';

    System.out.println(c1);
    System.out.println((int) c1);    //强制转换,将a转化为数字
    System.out.println(c2);
    System.out.println((int) c2);    //强制转换

    // 所有字符本本质还是数字

    //转义字符
    //   \t  制表符
    //   \n  换行

}

} Java基础05 类型转换 运算中,不同类型的数据先转换为同一类型,然后进行运算。

从低到高位数据类型:byte 、short、char—>int—>long—>float—>double

public class demo05 {

代码语言:javascript
复制
public static void main(String[] args) {
    int i = 128;
    byte b = (byte) i;   //强制转换

    System.out.println(i);
    System.out.println(b); //溢出
}

} 强制转换 (类型)变量名 高—>低位

自动转化 低—>高位

注意点: 不能对布尔值进行转换 不能把对象类型转换为不想干的类型 在把高容量转换到低容量的时候,强制转换 转换的是时候可能存在内存溢出,或者精度问题!!!!!!!! public class demo05 {

代码语言:javascript
复制
public static void main(String[] args) {
    int i = 128;
    byte b = (byte) i;   //强制转换

    System.out.println(i);
    System.out.println(b); //溢出

    System.out.println((int)23.7);    //double类型 23
    System.out.println((int)-45.89f);   //浮点数类型 -45

    char c = 'a';
    int d = c+1;
    System.out.println(d);    //98
    System.out.println((char) d);   //b
}

} public class demo06 {

代码语言:javascript
复制
public static void main(String[] args) {
    // 操作比较大的数字的时候,注意溢出的问题
    // JDK7 新特性,数字之间可以用下划线分割
    int money = 10_0000_0000L;  //Long 类型要在数字后加个L
    int years = 20;
    int total = money*years;  //-1474836480 ,计算的时候已经溢出了
    long total2 =money*years; //默认是int类型,转换之前就已经存在问题了

    long total3 = money*((long)years);   //需要把years转换为long类型
    System.out.println(total3);
}

} Java基础06:变量、常量、作用域 类变量

实例变量

局部变量

public class demo08 {

代码语言:javascript
复制
// 实例变量,从属于对象;如果不进行初始化,这个类型的默认值  0 0.0
// 布尔值默认为false
//除了基本类型,其余的类型默认值为null
String name;
int age;

//类变量
static double salary = 2500;

//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

    //类变量
    System.out.println(salary);
}

//其他方法
public void add(){

}

} 常量:设置之后不可再更改

常量修饰符: final

public class demo09 {

代码语言:javascript
复制
//常量修饰符:  final
//修饰符,不存在先后顺序
static final double PI = 3.1415926;
public static void main(String[] args) {
    System.out.println(PI);
}

} 命名规范 见名知意 类成员变量: 首字母小写和驼峰原则:monthSalary 除了第一个单词意外后面单词首字母大写。 局部变量:首字母小写和驼峰原则 常量:大写字母和下划线 MAX_VALUE 类名:首字母大写和驼峰原则:Man,GoogMan 方法名:首字母大写和驼峰原则:run(),runRun() Java基础07运算符 算术运算符 +、-、*、/、%、++、--

赋值运算符 =

关系运算符 >、<、>=、<=、==、!=、instanceof

逻辑运算符 && || ! (与或非)

位运算符

条件运算符

拓展运算符

package operator;

public class demo1 {

代码语言:javascript
复制
public static void main(String[] args) {
    //2元运算符号
    //CTRL + D  复制当前行到下一行
    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);   //可能产生小数,强转成double

}

} package operator;

public class Demo02 {

代码语言:javascript
复制
public static void main(String[] args) {
    long a = 12345678946545L;
    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   没有long类型,数据类型自动转为int类型,除非强转成double
}

} package operator;

public class Demo03 {

代码语言:javascript
复制
public static void main(String[] args) {
    //关系运算符号
    int a = 10;
    int b = 20;
    int c = 21;
    System.out.println(a>b);
    System.out.println(a<b);
    System.out.println(a==b);
    System.out.println(a!=b);

    System.out.println(c%a);    //取余运算,模运算

}

} Java基础08 自增自减运算符、初识math类 package operator;

public class Demo04 {

代码语言:javascript
复制
public static void main(String[] args) {
    // ++  --  自增、自减运算符
    int a = 3;

    int b = a++;     //  a = a +1     先赋值,再自增

    System.out.println(a);   //   a = 4;

    int c = ++a;     // ++a  a = a + 1;     先自增,再赋值

    System.out.println(a);
    System.out.println(a);
    System.out.println(b);
    System.out.println(b);
    System.out.println(c);
    System.out.println(c);

    //幂运算    2^3  2*2*2 = 8
    double pow = Math.pow(2,3);
    System.out.println(pow);

}

} Java基础09 逻辑运算符、位运算符 package operator;

public class Demo05 {

代码语言:javascript
复制
public static void main(String[] args) {
    // 逻辑运算符  &&  ||  !
    boolean a = true;
    boolean b = false;

    System.out.println("a && b " +(a && b));   //两个都是真,结果为真
    System.out.println("a || b " + (a || b));   //两个其中有一个是真,结果为真
    System.out.println("!(a && b) " + !(a && b));   //  如果为真,则为假;如果为假,则为真。

    //短路运算
    int c = 5;
    boolean d = (c<4)&&(c++<4);   //  c<4 为false ,不运行c++ ,结果最后还是c = 5;
    System.out.println(c);
    System.out.println(d);

}

} package operator;

public class Demo06 {

代码语言:javascript
复制
public static void main(String[] args) {
    /*
    * 位运算
    * A  =  0011 1100
    * B  =  0000 1101
    *
    * A&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倍
    * >>   /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);
}

} Java基础10 三元运算符及小结 package operator;

public class Domo07 {

代码语言:javascript
复制
public static void main(String[] args) {
    int a = 10;
    int b = 20;
    a+=b;  // a=a+b
    a-=b;  // a=a-b

    System.out.println(a);

    //字符串连接符  +  ,string

    System.out.println(""+a+b);     // 1020     其中的“+”是字符串连接符
    System.out.println(a+b+"");     // 30   其中a与b之间的“+”是运算符,b后面的的“+”是字符串连接符
}

} package operator;

public class Demo08 {

代码语言:javascript
复制
public static void main(String[] args) {
    //三元运算符
    // x ? y :z
    //如果 x==true ,则结果为y,否者为z

    int score = 80;
    String Type2 = score < 60 ? "不及格":"及格";
    System.out.println(Type2);
}

} Java基础11 包机制 包的本质就是一个文件夹()

一般利用公司域名倒置作为包名:com.luomoe.base

package com.baidu.base; //包

import com.baidu.base.demo03; //引入 import com.baidu.base.*; //引入 包内所有的类 Java基础12 JavaDoc生成文档 javadoc 命令是用来生成自己的API文档 /** 然后回车 /**

  • @author zhangshan
  • @version 1.0
  • @since 1.8 * * */

cmd命令(生成web文档)

javadoc -encoding UTF-8 -charset UTF-8 Doc.java

使用IEDA生成javadoc文档

(1)打开 idea,点击 Tools–> Generate JavaDoc,会弹出生成JavaDoc文档的配置页面。

(2)进行参数配置

(3)在输出目录里生成JavaDoc。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 01 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档