Java自学知识点_良心_精心整理

前言:这些是我跟着我学习的时候觉得对自己以后复习和对刚入门java的人觉得有用的干货分享!--------古之立大事者,不惟有超世之才,亦必有坚忍不拔之志

注释(Comments)

  • 单行注释: // 只能注释一行内容

  • 多行注释: /* */ 可以注释一段内容

  • 文档注释(JavaDoc): /** / 在这里面可以写出你的文本内容,你也可以学一些关键词 @开头,往后面添加 东西 ,但是这个文档注释对如我们初学java的人基本不会用到,当你进到公司里面的话才会用到,所以对于初学者只需要把单行注释(//)和多行注释(//)灵活的运用就行了*

    对于注释的总结

    1. 注释并不会被执行,是写给我们写代码的人看的
    2. 书写注释是一个非常好的习惯
    3. 平时写代码一定要注意规范,养成良好的习惯

标识符

  • 关键字

在这里插入图片描述

  • java所有的组成部分都需要名字 类名,变量名以及方法名都被称为标识符
  • 所有的标识符都必须以 字母(a~z A~Z) 美元符($)、下划线(_)开始
  • 不能使用关键字作为变量名或者方法名
  • 标识符是大小写敏感的
  • java不同于c的一点居然还可以用中文命名,这一点也算是我新学的吧

数据类型

  • java数据类型分为两大类

    1. 基本类型(primitive type)
    2. 引用类型(reference type)

    在这里插入图片描述

    //   八大基本数据类型
        
        //整数
        byte num1=10; (1byte)
        short  num2=20;(2byte)
        int num3=30;   (最常用)(4byte)
        long num4=40L;long 类型要在数字后面加一个L(8byte)
        //小数  浮点数
        float num5=40.3F; (这里也要加一个F,表示是float类型和double区分)(4byte)
    	double num6=3.14165926;(8byte)
    	//字符  
    	char num7='A';(2byte)(注意,这里要和c语言区分,c语言中char占一个字节)
    	//布尔值(只要false和true两个值)
    	boolean num8=false;(1byte)
    	boolean num9=true;(1byte)
    
    • 注意 String不是数据类型,是一个类
  • 整数的拓展-----进制

    1. 二进制 0b
    2. 十进制
    3. 八进制 0
    4. 十六进制 0x 0~9 A~F(10 11 12 13 14 15)
  • 浮点数拓展 银行业务怎么表示? 钱

  • 经典面试题

float a1=0.1f;
double a2=1.0/10;
System.out.println(a1 == a2);
//这个输出的答案是  false

float a1=2222223542135135f;
float a2=a1+1;
System.out.println(a1 == a2);
//这个答案是 true
//为什么会出现这个现象?   通过这个题我们可以得知float类型的特征: 
//有限  离散 舍入误差 大约  接近但不等于  
//多以对于浮点数的比较我们一般不直接去比 ,而使用BigDecimal数学工具类比较
  • 字符拓展
char c1='a';
char c2='中';
System.out.println((int)c1);
System.out.println((int)c2);
//输出结果  97  20013  这里用到了强制类型转换,并引出一个结论
//所有的字符本质还是数字
//编码Unicode表 2字节    0~65536   U0000~UFFFF
  • 转义字符

    1. ‘\t’ 制表符 相当于Tab的效果
    2. ‘\n’ 换行符 相当于回车的效果
  • 拓展知识(先了解)

            String s1=new String("hello,world");
            String s2=new String("hello,world");
            String s3="hello,world";
            String s4="hello,world";
    	    System.out.println(s1==s2);
    	    System.out.println(s3==s4);
    	//输出的结果为  false   true
     	//这些都是涉及底层的知识,先了解即可
    
    • 布尔值扩展
    boolean flag1=true;
    if(flag1==true){};
    if(flag1){};
    //这两种写法其实一样,一般新手喜欢写第一种,老手喜欢写第二种
    //Less is More!   以后写代码要简单易读
    

类型转换

  • 转换分为:

    1. 强类型转换
    2. 自动类型转化
  • 由于java是强类型语言,所以要进行有些运算时,需要用到类型转换

    在这里插入图片描述

  • 不能对布尔值转换

  • 再把高容量转化为低容量时强制转换

  • 转换的时候可能出现内存溢出,或者精度问题

        int b1=128;
        byte a1=(byte)b1;
        System.out.println(a1);
//     输出的结果是 -128  因为byte的范围是  -128~127  所以把128强转为byte类型会内存溢出
  • 操作数较大的时候,容易出现溢出问题(大多数人经常跳的坑!!!)
// JDK7的一个新特性 数字之间可以用下划线分割  并且输出的结果不会有影响
//  int  a=10_0000_0000;  (不会报错  输出时下划线不会被输出出来)

//For  Example:
int  a=10_0000_0000; 
int b=20;
int c=a*b;
System.out.println(c);//答案是:-1474836480  一个负数,并不是我们想象的20亿 这就是溢出int的范围了
//有的人碰到这种错误可能第一时间会想到自己的解决方案,就是把int改为long,以为这样就正确了
long c=a*b;
System.out.println(c);//答案是:-1474836480  还是一个负数,这是因为a和b先进行计算然后再进行转化,
//在计算的时候默认为int类型,所以直接溢出,转化的时候是吧溢出的那个结果转化给了long,所以还是报错的

//解决方案  
long c=b*((long)a);   //在计算的时候就先把a转化为long类型就可以避免了

总结

首先我感觉我总结的这些知识点对我自己来说时非常有帮助的,我感觉这些都是我收获比较大的。因为我之前已经学过c语言了。以上是我学习java的时候觉得容易出错的地方,我感觉这对初学者,新手,或者老手都很有帮助把,这些都是一些细节性常犯的错误,希望大家看一遍都能够记住自己觉得有用的东西,希望对大家有帮助把!如果觉得够干的话,点个赞关注一下吧!我会一直持续分享的,后面我也会把我学c过程中总结的知识点超详细的总结出来分享给大家!!!希望我们这些小伙伴们共同进步吧!

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C_x_330

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值