首页 > 编程语言 >java_基础01_数据类型和变量

java_基础01_数据类型和变量

时间:2024-04-12 11:11:41浏览次数:18  
标签:01 java int 数据类型 System helloworld println public out


 

1.注释
  //单行注释
  
  /*多行注释*/
  
  /**javaDoc:文档注释
  /**
 * @Description hello 
 */
 


 /**
 *                             _ooOoo_
 *                            o8888888o
 *                            88" . "88
 *                            (| -_- |)
 *                             O\ = /O
 *                         ____/`---'\____
 *                       .   ' \\| |// `.
 *                        / \\||| : |||// \
 *                      / _||||| -:- |||||- \
 *                        | | \\\ - /// | |
 *                      | \_| ''\---/'' | |
 *                       \ .-\__ `-` ___/-. /
 *                    ___`. .' /--.--\ `. . __
 *                 ."" '< `.___\_<|>_/___.' >'"".
 *                | | : `- \`.;`\ _ /`;.`/ - ` : | |
 *                  \ \ `-. \_ __\ /__ _/ .-` / /
 *          ======`-.____`-.___\_____/___.-`____.-'======
 *                             `=---='
 * 
 *                   佛祖保佑             永无BUG
 *           .............................................
 */
 
 

 

2.标识符

 

 

3.数据类型

 

public class helloworld{
    public static void main(String[] args) {
        String a = "hello";
        int mun = 10;
        System.out.print(a);
        System.out.print(mun);

    }
}

 

 

public class helloworld{
    public static void main(String[] args) {
       //八大基础数据类型

        //整数
        int num1 = 10; //最常用
        byte num2 = 20;
        short num3 = 30;
        long num4 = 30L; // Long类型要在数字后面加L

        //小数:浮点数
        float num5 = 50.1F;// float类型要在数字后面加F
        double num6 = 3.141592654;

        //字符
        char name = 'A';
        //字符串,String 不是关键字,是类 // String name = "xiaodi";

        //布尔值:是非
        boolean flag = true;
        boolean flag1 = false;

    }
}

 

public class helloworld{
    public static void main(String[] args) {
      //整数拓展: 进制 二进制0b  十进制 八进制0 十六进制0x
        int i1 = 10;
        int i2 = 010; //八进制0
        int i3 = 0x10; //十六进制0x 0~9 A~F
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
    }
}

 

public class helloworld {
    public static void main(String[] args) {
        //浮点数拓展
        //银行业务数字,不用浮点的float和double表示,一般用:BigDecimal 数学工具类

        //场景1
        float f = 0.1f;
        double d = 1.0/10;
        //广义理解以上两个变量,算出来都是0.1,但是代码中,是不等于的
        System.out.println(f==d); //输出结果为:false
        System.out.println(f); //0.1
        System.out.println(d);//0.1

        //场景2
        float d1 = 32323232323232f;
        float d2 = d1+1;
        System.out.println(d1==d2);//广义理解以上两个变量不一样,输出结果预期是false,实际运行结果为true
        // 因为浮点数取数是有限的,结果只是接近,大约

    }
}
public class helloworld {
    public static void main(String[] args) {

        //字符拓展
        char c1 = 'a';
        char c2 = '中';

        System.out.println(c1); //实际输出结果 a
        System.out.println(c2); //实际输出结果 中
        System.out.println((int)c1);//强制转换可以把字符转换为数字: 实际输出结果 97
        System.out.println((int)c2); //强制转换为数字后 实际输出结果 20013
        //以上4个输出代表:所有的字符本质上还是数字,通过Unicode编码 来编码的。
        //有对应的编码:类似以上:a=97 中=20013 输出时会去查Unicode编码的表
        //Unicode编码的表示方式 U0000 UFFFF

        char c3 = '\u0061'; //\u 转义
        System.out.println(c3); //输出结果为:a
        //C3的输出结果,充分说明了
        //Unicode(统一码)其实相当于一本很厚的字典,里面储存了世界上所有语言的字符,使用Unicode码点唯一地对应一个字符。


        //2,转义字符
        // \t 制表符(空格)
        // \n 换行
    }
}
public class helloworld {
    public static void main(String[] args) {
        //布尔值扩展
        boolean flag = true;
        if (flag==true){} //新手写法
        if (flag){} //老手写法,默认为真 //精简易读
    }
}

 

 

4.类型转换

 

 

1、其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样
byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)
short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)。

2、浮点:float、double
float在储存大型浮点数组的时候可节省内存空间;浮点数的默认类型为double类型;浮点数不能用来表示精确的值,

3、字符类型 char
char类型是一个单一的16位Unicode字符;(2字节)
最小值是’\u0000’(即为0);
最大值是’\uffff’(即为65,535); 2的16次方 -1 (2^16 -1)

 

 

public class helloworld {
    public static void main(String[] args) {
//类型转换
        /**
         * 1,不能对布尔值进行转换
         * 2,不能把对象类型转换为不相关的类型
         * 3,在把高容量转换到低容量的时候需要强制转换,低转高不需要
         * 4,转换的时候可能存在内存溢出,或者精度问题
         */
        //强制转换 格式:(类型)+变量名
        //自动转换 低-高


        //场景一,转换时内存溢出
        int i = 128;
        byte b = (byte)i; //这里如果写成 byte b = i; 会报错,b是byte类型,但是i是int类型。所以强制转换的格式很重要。

        System.out.println(i); //输出结果  128
        System.out.println(b); //输出结果 -128
        //造成以上输出结果的原因是,byte最大数是127,128时,就造成了内存溢出,所以输出结果会是负数


        //场景二:数据高到低需要强制转换, 低到高,可以自动转换
        int i2 = 128;
        double b2 = i2;
        System.out.println(i2); //输出结果  128
        System.out.println(b2); //输出结果  128.0


        //场景三,精度丢失问题。
        System.out.println((int)23.7); //输出结果: 23 丢失了小数点后数据
        System.out.println((int)-45.89F);  //输出结果: -45 丢失了小数点后数据

        //场景四,字符转数字
        char c = 'a';
        int d = c+1; //低转高,自动转换
        System.out.println(c); //输出结果:a
        System.out.println(d); //输出结果:98
        System.out.println((char)d); //输出结果:b 说明在Unicode编码中,98 就是b 编码-1,97就是a

        char c4 = '\u0098';
        System.out.println(c4); //验证一下上面的结果,输出结果为b

    }

}

 

public class helloworld {
    public static void main(String[] args) {

        //操作比较大的数的时候,注意溢出问题


        //场景1:Jdk7新特性数字之间可以下划线_分割,不影响输出结果
        int money = 10_0000_0000;
        System.out.println(money); //输出结果,1000000000

        //场景2:
        int years = 20;
        int total = money*years;
        System.out.println(total); //实际输出结果:-1474836480,期待结果200_0000_0000  这样就内存溢出了

        long total2 = money*years;
        System.out.println(total2); //这样使用long,也不行,因为两个变量是int,就是默认int,在转换之前就已经内存溢出了

        long total3 = money*((long)years);
        System.out.println(total3); //实际输出结果,20000000000,这样写就不会存在内存溢出问题了。
        //PS:int数据范围-2147483648-2147483647  最大21亿,以上变量计算结果为200亿,所以内存溢出;
    }
}

 

5.变量

 

 

public class helloworld {
    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; //尽量采用这种分行来写  int属于基本类型变量

        String name = "xiaodi"; //String属于引用类型变量
        char X = "xiao";
        double pi = 3.14;

    }
}

 

 

//变量作用域-局部变量
public class helloworld { //helloworld 就是类,类名

    //类里面除了像main的方法,还能定义属性  属性可以理解为就是一个变量

    public static void main(String[] args) { //main方法 默认的主程序方法
        //局部变量:局部变量是在方法或者语句块里边的,
        // 在两个{}之间的,有效期从第一个{开始,到}结束。
        //而且必须声明和初始化值
        //int i;  //而且必须声明和初始化值
        int i=10;  // i这个变量只能在这一个方法里边使用,其他方法不能用。
        System.out.println(i);
    }

    //类里面除了像main的方法,还能写其他方法,比如于下方add方法
    public void add(){

    }
}
//变量作用域-实例变量
public class helloworld {
    //实例变量,不在方法里边,在类里边,从属于对象的,(从属于helloworld这个类)
    String name; //实例变量可以不初始化,直接用
    int age;
    public static void main(String[] args) {
       helloworld  helloworld = new helloworld();
       //变量类型 变量名 = 值(变量就是自己helloworld)
        System.out.println(helloworld.name); //输出结果 null 因为上面没有初始化值,而在实例变量中,如未初始化值,就会变成这个类型的输出默认值
        System.out.println(helloworld.age); //输出结果 0
        // 整数 0 小数0.0 布尔值fales
        // 除了基本类型,其他的都是null 包括String
    }
}
//变量作用域-类变量-static

public class helloworld {
    static double salary = 2500; //只要加了关键字static,就是从属于类的变量,可以直接使用
    public static void main(String[] args) {
        System.out.println(salary);
    }
}

6.常量

 

 

//常量-final
public class helloworld {
    static final double PI = 3.14; //static 和final 位置可以不区分前后 ,他俩都是修饰符,修饰符不存在先后顺序,public也是
    //常量也属于类变量,所以需要加static
    //项目中一些定死的值,就可以用常量,常量定义后,就不能变。静态常量
    public static void main(String[] args) {
        System.out.println(PI);
    }
}

 

标签:01,java,int,数据类型,System,helloworld,println,public,out
From: https://www.cnblogs.com/xiaodi888/p/18119279

相关文章

  • onJava8学习笔记
    onJava8:ThinkingInJavasequel第一章:对象的概念※,复用组合(UML实心三角形)和聚合(UML空心三角形)都属于关联关系的一种,只是额外具有整体-部分的意义。至于是聚合还是组合,需要根据实际的业务需求来判断。可能相同超类和子类,在不同的业务场景,关联关系会发生变化。只看代码是无法......
  • 01 Vue3简介
    介绍性能的提升打包大小减少41%初次渲染快55%,更新渲染快133%内存减少54%源码的升级使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking拥抱TypeScriptVue3可以更好的支持TypeScript新的特性1.组合是API(CompositionAPI)setup......
  • 狂神说Java Web学习笔记_Session
    原理图服务器会给每一个用户(浏览器)创建一个session对象一个session独占一个浏览器,主要浏览器没有关,这个session就存在登录之后,整个网站都可以访问常用场景保存一个用户的登录信息在整个网站中经常会使用到的数据常用的session方法//得到SessionHttpSessionsession=re......
  • java中的多态
    Java中的多态同种行为具有不同表现形式或形态的能力意义:程序最终的状态只有在执行过程中才会被决定而非在编译期间决定提高了程序的灵活性和扩展性实现的必要条件:必须有继承必须有重写方法父类引用指向子类对象创建四个类Animal类publicclassAnimal{ public......
  • 狂神说Java Web学习笔记_Cookie
    会话用户打开一个浏览器,点击了很多链接,访问了很多web资源,关闭浏览器之后,这个过程可以称之为一次会话。有状态会话一个同学来过教室,大家看到了,下次再来教室的时候,我们会知道这个同学曾经来过,这个被称为有状态会话。一个网站如何证明你访问过?服务端给客户端一个信件,客户端下次......
  • Maya 2019.2 Mtoa 无法正常加载并报错
    事件起因:在开始安装Maya2019.2时自动安装的Mtoa的版本为5.3.1,但是在插件管理器里无法启用插件,于是乎去网上下了一个低的版本5.1.1,虽然可以使用但是渲染出来的东西不能用;于是乎我又去网上下载了同样的5.3.1的独立安装包,然后安装破解(注意,这里有个坑,后续揭晓为什么),但是并无......
  • RAG应用开发实战(01)-RAG应用框架和解析器
    1开源解析和拆分文档第三方的工具去对文件解析拆分,去将我们的文件内容给提取出来,并将我们的文档内容去拆分成一个小的chunk。常见的PDFwordmarkdown,JSON、HTML。都可以有很好的一些模块去把这些文件去进行一个东西去提取。优势支持丰富的文档类型每种文档多样化选择与......
  • 手把手教你做阅读理解提高001-Camping:Finding Myself and Growing Strong-露营:在成长
    PDF格式公众号回复关键字:ZKYDT001阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解1预览文章结构在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构标题通常能概括文......
  • Java基础学习 | 2024年4月11日
    变量1.类变量(静态变量):前面用static修饰,表示所有子类都共用同一个属性值,可以直接用类名来访问静态变量,也可以通过实例名来访问静态变量。即无论创建多少个类实例,静态变量在内存中只有一份拷贝,被所有实例共享。举例:点击查看代码publicclassMyClass{publicstaticintc......
  • JavaScript 迈入 AI 新纪元
    随着人工智能技术的不断进步,JavaScript也迎来了自己的AI时代。JS-Torch是一个全新的深度学习库,专为JavaScript设计,其语法习惯与广受欢迎的PyTorch框架高度相似。这个库提供了一整套深度学习工具,包括可追踪梯度的张量对象、多层网络结构以及自动微分功能。PyTorch,作为JS......