java基础语法

2023-10-28

Java基础语法

注释

  1. 单行注释://注释一行
  2. 多行注释:/* 注释多行*/
  3. 文档注释:/** */

标识符

  1. 字母、数字、下划线、$(数字不能开头)

在这里插入图片描述

在这里插入图片描述

数据类型扩展及面试题讲解

  1. 整数:二进制(0b开头),八进制,十进制,十六进制表示及计算问题。如:

    int a = 10;//十进制 (10)
    int b = 010;//八进制 以0或0~7开头 (8)
    int c = 0x10;//十六进制 以0x开头(0~9 A~F)(16)
    
  2. 浮点数:因为float具有有限、离散、舍入误差的缺点。在进行比较的时候最好完全使用浮点数进行比较,最好使用数学工具类:BigDecimal

    fload f = 0.1f;
    double d = 0.1;
    System.out.println(f==d);//false
    
    fload d1 = 1234567890454566;
    fload d2 = d1+1;
    ystem.out.println(f==d);//true
    
  3. 字符拓展:所有字符的本质还是数字。使用Unicode编码格式,2进制表(U0000-UFFFF).

  4. 一个现在还不理解的小问题

    String s1 = new String("hello world");
    String s2 = new String("hello world");
    System.out.println(s1==s2);//false
    
    String s3 = "hello world";
    String s4 = "hello world";
    System.out.println(s3==s4);//true
    
  5. 布尔值扩展:boolean只有两种返回值true和false,默认返回值为false。

    boolean flag = true;
    if(flag == true){}//新手
    if(flag){}//老手
    
  6. 数据转换(强制转换):在使用强制转换时注意数据溢出问题!

    int money = 1000000000;
    int years = 20;
    int toatal1 = menoy*years;
    System.out.println(total1);//-1474836480  数据溢出
    
    int total2 = ((long)money)*years;
    System.out.println(total2);//20000000000
    
    
  7. ①.常量、变量、作用域

    在Java中,利用关键字final指示常量。关键字final表示这个变量只能被赋值一次,一旦被赋值,就不能再更改了,习惯上,常量名使用全大写。如:

    final double PI = 3.14;
    

    ②.声明变量后,必须用赋值语句对变量进行显示初始化,千万不要使用未初始化的变量。变量的声明尽可能靠近第一次使用的地方。如:

    int a ;//声明一个变量
     a = 1;//赋值初始化int a = 1;//定义一个变量
    

    ③.类变量,类常量(静态常量),定义在main函数外。

    static double salary = 2500;//类常量
    (public) static final double PI = 3.14;//静态常量,修饰符不分先后顺序
    

    ④注意:实例变量:从属对象,如果不进行初始化,这个类型的默认值为0或0.0。

    布尔值:默认值是false。

    除了基本类型,其余默认值都是null。

运算符

  1. 二元运算符:+ 、—、*、/

    int a = 10;
    int b = 20;
    
    System.out.println(a+b);//30
    System.out.println(a-b);//-10
    System.out.println(a*b);//200
    System.out.println(a/(double)b);//0.5(结果出现小数要进行数据转换)
    
    
  2. 关系运算符:返回的结果有true、false。

    int a = 20;
    int b =  23;
    
    System.out.println(a>b);//false
    System.out.println(a<b);//true
    System.out.println(a==b);//false
    System.out.println(a!=b);//true
    
  3. 取余

    System.out.println(a%b);//3
    
  4. ++ —— 自增自减 、一元运算符

    int a = 3;
    int b = a++;
    System.out.println(b);//3  a先把值赋值给q,再自增。
    int c = ++a;
    System.out.println(a);//a先自增,再把5赋值给c
    
    
  5. 幂运算:2^3 = 2 *2 *2 = 8;

    double pow = Math.pow(2,4);
    System.out.println(pow); //16
    
  6. 逻辑运算符:与(and)、或(or)、非(取反)

    boolean a = true;
    boolean b = false;
     System.out.println(a&&b);//false
    System.out.println(a||b);//true
    System.out.println(!(a&&b));//true
    
  7. 短路运算

    		  int v = 5;
            boolean n = (v<4)&&(v++<4);
            System.out.println(n);//false
            System.out.println(v);//5
    
  8. 移位符:

    	A = 0011 1100
       B = 0000 1101
     ______________________________________
       A&B = 0000 1100 
       A|B = 0011 1101
       A^B = 0000 0001 //取反
       ~B = 1111 0010
          
        2^4 = 16 = 2*2*2*2
          << (左移 *2)
          >> (右移 /2)
          
          0000 0000  0
          0000 0001  1
          0000 0010  2
          0000 0100  4
          0000 1000  8
          0001 0000  16
          
      System.out.println(2 << 3);//8
          
    
  9. 扩展运算符:+=、-=

    int a = 10;
    int b = 20;
    
    a += b;//a=a+b
    a -= b;//a=a-b
    
  10. 字符串连接字符串+ , String

    int a = 10;
    int b = 20;		
    System.out.println(a + b);//30
    System.out.println("" + a + b); //1020
    System.out.println(a + b + "");//30
    
  11. 三元运算符

    x ? y : z 如果x==true,则结果为y,否则为z

    int score = 80;
    String type = score>60 ? "及格" : "不及格";
    System.out.println(type);//及格
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java基础语法 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供

随机推荐