首页 > 编程语言 >Java 基本知识——first day

Java 基本知识——first day

时间:2023-06-01 18:22:07浏览次数:56  
标签:Java 变量 int System 类型 println first day out

注释

注释不会被执行,是写给看代码的人看的。

三种注释

单行注释

image-20230524180254971

多行注释

image-20230524180303930

文档注释

image-20230524180453725

标识符

关键字

image-20230524180734757

Java常见的关键字

考点

image-20230524181146083

总结四个点:

  1. 首字母应该以字母、$、_开始;

  2. 开始后可以任意字符;

  3. 不可用关键字

  4. 大小写敏感

 

数据类型

Java是一门强类型语言

强类型语言

比如Java、C++、C

变量定义严格,先定义才能使用。

弱类型语言

比如VB、JS、Python

Java的两大类数据类型

基本类型

Java语言提供了八种基本类型:

  • 四个整数型;

  • 两个浮点型;

  • 一种字符型;

  • 布尔

数值类型

整数类型

  • byte占1个字节

    • -128(-2^7)

    • 127(2^7-1)

  • short占2个字节

    • -32768(-2^15)

    • 32767(2^15 - 1)

  • int(整型)占4个字节

    • -2,147,483,648(-2^31)

    • 2,147,483,647(2^31 - 1)

  • long(长整型)占8个字节。

    • -9,223,372,036,854,775,808(-2^63)

    • 9,223,372,036,854,775,807(2^63 -1)

浮点数类型

  • float(单精度)占4个字节

    • 储存大型浮点数可节省空间。

  • double(双精度)占8个字节

    • 默认类型

字符类型

  • char(字符型)占2个字节

  • String(字符串)他不是一个关键字,是一个类

布尔类型

  • boolean(布尔类型)

    • 只能存储true和false。

引用类型

除了基本类型之外的所有数据类型,都是引用类型。

类;接口;数组。(后续专栏讲解)

 

拓展

整数进制

常规使用的基本数据类型为10进制:

而Java程序中,可以对变量赋值为各种进制。

 //默认十进制,二进制为0b,八进制为0,十六进制为0x
 public class binary {
     public static void main(String[] args) {
         int i=10;
         int i2=010;
         int i3=0x10;
         System.out.println(i);
         System.out.println(i2);
         System.out.println(i3);
    }
 }

输出结果为:image-20230529155101114

浮点数特性

由于浮点数具备以下特征:

  1. 有限性;

  2. 离散性;

  3. 舍入误差;

  4. 大约;

  5. 接近但不等于。

所以我们在实际使用中,要尽量避免使用浮点数进行数值之间的比较。

案例1:两个相同的数值进行比较得false

代码如下:

 float f=0.1f;
 double d=1.0/10;
 System.out.println(f==d);

输出结果得:image-20230529155813881

使用调试查询变量数值:

image-20230530093220595

两个数值都相同,但输出结果为false。

案例2:过长数值+1,依然等于原数值

代码如下:

 float d1=213213213213213213f;
 float d2=d1+1;
 System.out.println(d1==d2);

输出结果为:

image-20230530093720101

使用调试查询变量数值:

image-20230530093744335

可以看见,浮点数值一但过大,则会直接修改表示形式,就无法对比数值大小了。

解决方案(BigDecimal)

如果涉及浮点数比较大小,最好使用 数据类 BigDecimal 数学工具类。

字符拓展

字符

所有的字符,本身都是Unicode、ASCII码

Unicode(0~65536,2^16)

代码如下:

 char a='a';
 char A='A';
 char B='B';
 System.out.println("a="+(int)a);
 System.out.println("A="+(int)A);
 System.out.println("B="+(int)B);

运行结果如下:

image-20230530095837594

转义字符

除此之外,字符还具备转义字符的含义,一般可用在如下场景:

  1. 需要插入一些关键性的文字;

  2. 需要插入一些空格、回车,等特别的字符。

代码如下:

 System.out.println("中间是空格转义符→\t←");

输出结果:

image-20230530100927793

 

类型转换

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

数据类型优先级

image-20230530102102420

强制类型转换

代码如下:

 public class type_Convert {
     public static void main(String[] args) {
         int i=128;
         byte b= (byte) i;//因为最大值是127,当128的时候就是补码
         System.out.println(i+"\n"+b);
    }
 }

输出结果如下:image-20230530101832539

加个括号的形式,就是强制转换,从数据类型的高到低,就需要强制转换。

反之,从低到高就采用自动转换。

自动类型转换

代码如下:

 int o=123;
 double j=o;

扩展补充

  1. 不能对布尔类型进行转换。

  2. 不能把对象类型转换为不相干的类型。

  3. 在把高容量转换到低容量的时候,强制转换。

  4. 转换的时候可能存在内存溢出和精度问题,转换后会除去掉小数部分。

  5. JDK7 的新特性,数字之间支持用下划线分割。

 int q=10_0000_0000;
 System.out.println(q);

输出结果:

 1000000000

变量

定义:可变化的量

  • 每个变量都必须声明其类型;

  • 是最基本的存储单元,其要素包含变量名、变量类型和作用域

变量定义:

 int i = 1;
 String i = 2;
 //int、String 变量类型
 // i 就是变量名称

作用域

类变量:

  • 从属与类,可以直接使用类名调用的变量

  • 作用范围全局

 public class action_Scope {
     //类变量:从属与类,可以直接使用类名调用的变量。
     static double salasy;
     public static void main(String[] args) {
         //类变量的调用
         action_Scope.salasy=200D;
         System.out.println(action_Scope.salasy);
    }
 }

输出结果:

 200.0

实例变量

  • 从属与对象:如果不自行初始化,这个变量则自动唯默认值 0 0.0

    • 布尔变量为true,除了基本类型,其他的引用类型都是null

  • 作用范围,new 实例。

 public class action_Scope {
     //实例变量:从属与对象:如果不自行初始化,这个变量则自动唯默认值 0 0.0
         //布尔变量为true,除了基本类型,其他的引用类型都是null
     String name;
     int age;
     public static void main(String[] args) {
  //实例变量的调用
         action_Scope action_scope=new  action_Scope();
         System.out.println(action_scope.age);
    }
 }

输出结果:

 0
 null

局部变量

  • 作用范围,方法内部

 public class action_Scope {
     public static void main(String[] args) {
         //局部变量:必须声明和初始化数值
         int i = 10;
         System.out.println(i);
    }
 }

输出结果:

 10

常量

一但定义了,就不会变化的量。

 public class Demo1 {
     //修饰符不区分先后顺序。
     final static double PI=3.14;
     static final double π=3.14;
 }

命名规范

  • 所有变量、方法、类名:见名知意;

  • 变量、方法:首字母小写和驼峰原则:mounthSalary

    • 除了第一个单词,后面的单词首字母大写

  • 常量:全大写字母,多个单词使用下划线隔开。

    • MAX_VALUE

  • 类名:首字母大写,驼峰原则

运算符

image-20230531111648712

  • 自增、自减,也可以叫做一元运算符

  • a++和++a的区别在于,先执行再++和先++再执行

  • 很多运算我们会使用Math工具类进行操作

短路运算

  • 当与预算时,如果前者为假,就不会继续向后执行代码了

  • 或运算时,如果前者为真,则不会继续执行后面的代码

位运算

位运算就是将变量与变量用二进制的形式进行 与或非 的计算,一般计算IP地址和子网掩码可用使用位运算

 

面试题:2乘以8怎么运算最快?

image-20230531192234598

利用位运算符,可以根据变量的二进制数值进行移动

image-20230531192339371

优点是运算效率极高(直接是底层机器语言)。

三元运算符

代码:

 int en= a<10?20:30;
 System.out.println("三元运算符:"+en);

输出:

 三元运算符:30

 

字符串连接符

问:以下两种代码写注方式,有什么区别?

 int a=10;
 int b=20;
 System.out.println(""+a+b);
 System.out.println(a+b+"");

输出:

 1020
 30

答:当一串运算语句中,出现String类型,之后的所有+号,都会被认为是字符串连接符。

优先级

优先计算括号。

包机制

包的本质就是一个文件夹。

包的结构必然是和网址相反的。

image-20230531203907946

JavaDoc

用于生成API文档,开发时极其有用。

image-20230531205248959

 

可以通过doc命令行,在当下目录,输入代码:

 javadoc -encoding UTF-8 -charset UTF-8 [.java文件的路径]

快速生成相关的Java文档。

image-20230531205821561

 

 ### 部分截图取自,B站UP:遇见狂神说;菜鸟教程

 

 

 

标签:Java,变量,int,System,类型,println,first,day,out
From: https://www.cnblogs.com/xuyuyu/p/17449697.html

相关文章

  • Java多线程三(线程池执行完后再执行主线程)CountDownLatch
      我们在开发多线程的时候,有两种情况一种是我们处理好后,不用管结果。比如我需要查询某些数据然后存在数据库里。还有一种就是查询好数据(通过线程池),然后导出数据。这个就比较麻烦。因为我们要将数据通过多线程处理后,返回一个统一的结果。(由于多线程是在不同的时候执行数据),假如执......
  • Java中将网上的png,jpg等存储在图片服务器中并且转成pdf,并且返回相应的url地址。
    通常在开发的时候,我们会遇到图片上传的功能,特别是有很多是提供url地址的方式。所以需要提供一个将url的图片等存储起来,然后提供一个我们自己的地址给用户使用。第一步:提供pdfbox的jar包。准备相应的maven    <dependency><groupId>org.apache.pdfbox</groupId......
  • ‘dependencies.dependency.version‘ for mysql:mysql-connector-java:jar is missin
    项目使用的技术框架是SpringBoot,依赖管理工具是Maven,需要用到数据库所以引入了mysql-connector-java相关jar包。之前项目一直正常的,不会报错,最近更新了一下版本,项目启动的时候直接报错:[INFO]Scanningforprojects...[ERROR][ERROR]Someproblemswereencounteredwhilep......
  • Java中使用Redis
    应用框架SpringDataRedisSpringDataRedis介绍SpringDataRedis是Spring的一部分,提供了在Spring应用中通过简单的配置就可以访问Redis服务,对Redis底层开发包进行了高度封装。在Spring项目中,可以使用SpringDataRedis来简化Redis操作。Maven坐标点击查看代......
  • JAVA 反射应用:Annotation
    SomeClass.javaimportjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;importjava.lang.reflect.Method;publicclassSomeClass{@SomeToken......
  • java 两个整数相除,保留两位小数
    1.情景展示两个int类型的整数相除,如何保留两位小数?5÷18=0.2777...,除不尽,保留两位小数,第二位小数的值,按第三位小数的值进行四舍五入,最终值应该是:0.28。18÷5=3.6,能除尽,只有一位小数,保留两位小数的话,第二位小数应该是0,所以最终值为:3.60。但实际结果如下。计算结果只有整数......
  • java map缓存数据自动过期
     packageztest;importjava.util.Date;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importjava.util.Timer;importjava.util.TimerTask;/***页面跳转时产生一个token*带到页面*页面保存时校验token**防止重复提交......
  • Java开发手册中为什么禁止使用BigDecimal的equals方法做等值比较已经为什么禁止使用do
    场景阿里Java开发手册嵩山版中明确指出:1、BigDecimal的等值比较应使用compareTo()方法,而不是equals()方法equals()方法会比较值和精度(1.0与1.00返回结果为false),而compareTo()则会忽略精度2、禁止使用构造方法BigDecimal(double)的方式把double值转换为BigDecimal对象BigDeci......
  • java.lang.ClassNotFoundException: weblogic.utils.NestedException
    我单元测试的时候报这种错误Causedby:java.lang.ClassNotFoundException:weblogic.utils.NestedException atjava.net.URLClassLoader$1.run(URLClassLoader.java:202) atjava.security.AccessController.doPrivileged(NativeMethod) atjava.net.URLClassLoader.findC......
  • Java学习问题记录
    1.特殊基本数据类型除了这两个,其他的变量都不需要加符号//定义时需要在变量的值后面加L或llongcount=300000L;//定义时需要在变量的值后面加f或Ffloatcode=10.3f;2.常量定义//在Java中使用final关键字来修饰常量,声明方式和变量类似:(通常使用大写字母表示常量)fina......