首页 > 编程语言 >java基础(根据狂神总结)

java基础(根据狂神总结)

时间:2023-08-29 16:25:04浏览次数:37  
标签:总结 java String int System long println 狂神 out

java基础(狂神)

注释

  • 单行

    • //
  • 多行

    • /* */
  • 文档注释(可以加参数)

    • /****

    • /**
          * @Description helloworld
          * @Author cheems
          */
      }
      

数据类型

类型

  • 基本数据类型
    • 数值类
      • 整数(查看最大字节大小,通过对应 的类的源码看)
        • byte 占1个字节
        • short 2
        • int 4
        • long 8 long的数据后面加上L
      • 浮点
        • float 4 double的数据后面加上F
        • double 8
    • 字符
      • char 2
    • 布尔类
      • boolean 1
  • 引用数据类型
    • String 不是关键词,是一个类
    • 数组
    • 接口

补充

  • 字节

    • 位(bit):是计算机内部储存的最小单位
    • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
    • 1B=8bit
    • 1bit表示一位
    • 1024B=1KB
    • 1024KB=1M
    • 10224M=1G
  • 面试题

    • 整数拓展

      • 进制:

        • 二进制 0b开头

        • 十进制

        • 八进制 0

        • 十六进制 0x

          • public class HelloWorld {
                public static void main(String[] args) {
                   int a = 010;
                   int a2 = 0b10;
                   int a3=0x10;
            
                    System.out.println(a);
                    System.out.println(a2);
                    System.out.println(a3);
                }
            }
            
          • 结果

          • 8
            2
            16

      • 浮点数

        • 浮点数是有限的,离散的,会舍入误差,这样的到的就是大约,接近但不等于

        • 因此在银行业务中不能使用浮点数

        • 使用BigDecimal这个类

        • public class HelloWorld {
              public static void main(String[] args) {
                 float f=21356463641F;
                 float f1=f+1;
                  System.out.println(f==f1);
              }
          }
          
          //true  但是实际上并不相等
          
        • float f2=0.1F;
          float f3=1/10;
          System.out.println(f2==f3);
          
          //false   但实际上是相等的
          
      • 字符拓展

        • 所有的字符本质都是数字
        • 本质都是编码集中数字所代表的符号
      • 转义字符

        • \t 制表符
        • \n 换行
      • 字符串

        • String s=new String("hello world");
                 String sd=new String("hello world");
                 System.out.println(s==sd);
           
                 String a="hello world";
                 String a1="hello world";
                 System.out.println(a==a1);
           
          //false 
          //true
          //内存地址不同
          
      • 布尔值

        • boolean flag=true;
                 if(flag){}
                 if(flag==true)
          //这是一样的	
          

类型转换

  • 自动类型转换(容量低的类型转容量高的类型)

    • 自动转换不报错
    • 不同类型的变量在进行运算时会向上转换,有long就转为long,无long就是int,有浮点,就转为最大的浮点
      • 数字不能与字符串进行加运算,而是会将数字变成字符串连接起来
      • 查看类型 ,可以在前面加上(String)(a+x),报错就可以看到
  • 强制类型转换(容量高的类型转容量低的类型,需要强制转换,不然报错)

    • 容量高的类型转容量低的类型,那么就会造成精度丢失,内存溢出等问题

    • 	int a=128;
          byte x=(byte) a;
          System.out.println(a );
          System.out.println(x);       //内存溢出
        
      //128
      //-128
      
      
      				 float f=123.45f;
              float f1=1.1223f;
              System.out.println((int)f);
              System.out.println((int )f1);
      //123
      //1         精度丢失
      
    • 注意:

      • 不能对布尔值进行转换
      • 不能把对象类型转为不相干类型
    • 强制类型转换会存在值的溢出

    • public class HelloWorld {
          public static void main(String[] args) {
             int a=10_0000_0000;
             int year=20;
              System.out.println(a*year);    //-1474836480
      
              long total=a*year;				//在这里a*year是int,已经成了-1474836480,然后转成了long
              System.out.println(total);     //-1474836480
      
              long total1=a*(long)year;      //在乘之前把一个数转成long
              System.out.println(total1);			//20000000000
      
          }
      
      }
      

变量

由类型,变量名,作用域组成

  1. 类型:可以是基本类型也可以是引用类型
  2. 变量名:必须是合法的标识符
  3. 作用域
    1. 局部变量:在方法中变量,使用时必须声明和初始化值
    2. 实例变量:方法外类中,从属于对象,不初始化,就是默认值,布尔是false,int是0,除了基本类型其余都是null
      1. 使用时必须要依靠对象
    3. 类变量:在声明时在前面加static(实例变量的基础上),从属于类,可以在类中直接使用

常量

初始化后不能改变的值

final 常量类型 常量名=初始化的值

变量名一般用大写

  • 命名规范
    • 见名知意
    • 类成员变量:首字母小写和驼峰原则
    • 局部变量:同上
    • 常量:大写字母和下划线
    • 类名:首字母大写和驼峰原则
    • 方法名:首字母小写和驼峰原则

运算符

/ 除法中若两个int相除,得到的还是int,若想要小数的结果,把一个变成浮点

幂运算:Math类

double a=Math.pow(2,3);
    System.out.println(a);
  • 逻辑运算:与&& ,或|| ,非!
    • 短路运算:一边的运算能决定这个运算的值,就不再运算下一边
    • 两边只能是布尔值 ,1/0 不能表示布尔值

位运算

左移>>相当于乘

右移<<相当于除

优先级

​ 使用括号,单目大于双目,

包机制

  • 包的命名方式:一般位域名的颠倒(不会重复)

  • 导包:import 报名

  • 关键词:

    • public 导入都可以访问
    • default/没写 只有那个包里面的可以访问
    • private 只有当前类可以访问
    • protect 除了包可以,还有外部如果有子类继承他,也可以访问

javaDoc

  • 文档注释

  • 使用命令行生成帮助文档: 在xxx.java的文件目录下开启cmd,进行javadoc -encoding UTF-8 -charset UTF-8 java文件名.java ,就会得到一堆html,有个index就是帮助文档了,文档注释中的参数就会在帮助文档中变成说明

  • 使用idea生成帮助文档:最上方菜单栏选择工具中的生成javadoc,选择生成范围,生成地址,输入参数确定。

标签:总结,java,String,int,System,long,println,狂神,out
From: https://www.cnblogs.com/ximenheiniu/p/17665153.html

相关文章

  • 32位数字电位器AD5228使用及调试总结
    一概念什么是数字电位计?  数字电位器(DigitalPotentiometer)亦称数控可编程电阻器,是一种代替传统机械电位器(模拟电位器)的新型CMOS数字、模拟混合信号处理的集成电路。数字电位器由数字输入控制,产生一个模拟量的输出。依据数字电位器的不同,抽头电流最大值可以从几百微安到几个......
  • Java中使用JTS对空间几何计算(读取WKT、距离、点在面内、长度、面积、相交等)
    场景基于GIS相关的集成系统,需要对空间数据做一些判断处理。比如读取WKT数据、点到点、点到线、点到面的距离,线的长度、面的面积、点是否在面内等处理。JTS(JavaTopologySuite)Java拓扑套件,是Java的处理地理数据的API。github地址:https://github.com/locationtech/jtsAPI......
  • [java基础知识复习] Java基础知识总结分享一
    写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1,2,3。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现。用具体的java语言代码把思路体现出来。学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。demo4,该技术什么时候用?test。————......
  • redis分布式锁,setnx+lua脚本的java实现
    1前言在现在工作中,为保障服务的高可用,应对单点故障、负载量过大等单机部署带来的问题,生产环境常用多机部署。为解决多机房部署导致的数据不一致问题,我们常会选择用分布式锁。目前其他比较常见的实现方案我列举在下面:基于缓存实现分布式锁(本文主要使用redis实现)基于数据库实......
  • 怎么样去学习javaweb
    据Java官方记载,只有JavaSE和JavaEE这类表述,似乎并没有JavaWeb这么一个说法,所以,我更愿意认为,JavaWeb是各位Java前辈们对于Java在Web方向应用的相关技术栈,正如现在的PythonWeb,golangweb等等,只不过是通过某种语言来实现web应用而已。让我们先看看百度百科对于JavaWeb的定义,JavaW......
  • redis分布式锁,setnx+lua脚本的java实现 | 京东物流技术团队
    1前言在现在工作中,为保障服务的高可用,应对单点故障、负载量过大等单机部署带来的问题,生产环境常用多机部署。为解决多机房部署导致的数据不一致问题,我们常会选择用分布式锁。目前其他比较常见的实现方案我列举在下面:基于缓存实现分布式锁(本文主要使用redis实现)基于数据库实现分布......
  • Java 15 JSTL实现登录退出
     jstl.jsp<%@pagecontentType="text/html;charset=UTF-8"language="java"%><%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%><%--if--%><%@taglibprefix="fmt"uri=&......
  • Java 14 EL表达式
     eljstl.jsp<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title</title></head><body><h1>首页</h1><%--指令包含<%@includefile=......
  • 剑指offer刷题总结
    文章目录一、数组二、链表三、栈和队列四、二叉树五、字符串六、回溯算法七、其他一、数组01、二维数组中的查找06、旋转数组的最小数字12、调整数组顺序使奇数位于偶数前面27、数组中出现次数超过一半的数字29、连续子数组的最大和31、把数组排成最小的数34、数组中的逆序对36、......
  • 本周总结
    这周开始了解spark技术Spark是当今大数据领域最活跃、最热门、最高效的大数据通用计算平台之一 Spark优势及特点 优秀的数据模型和丰富计算抽象首先看看MapReduce,它提供了对数据访问和计算的抽象,但是对于数据的复用就是简单的将中间数据写到一个稳定的文件系统中(例如HDFS)......