Java基础知识

目录

1、第一个java程序

2、java的注释

3、java的数据类型

     整数:

     浮点数:

     char类型数:

     布尔类型数:

4、java的变量

5、运算符

6、字符串

1、字符串拼接:

2、检测字符串是否相等:

3、空串和null串:

4、不可变字符串:

5、代码点和代码单元:

6、字符串 API:

7、构造字符串:

7、输入输出

1、读取输入

2、格式化输出

3、文件的输入输出


1、第一个java程序

 

public class FirstExample {
    public static void main(String[] args) {
        System.out.println("HelloWorld!");
    }
}

注意:

  • System.in和System.out是java的标准输入输出
  • println()和print()方法代表输出到控制台,但是println()代表输出后自动换行,而print()不换行
  • java中的main方法都默认定义为static方法(静态方法),只有这样,当程序运行时,main才能自动被初始化并加载

2、java的注释

java中有三种注释的方式:

  1. 最常用的是使用//
  2. 需要长篇注释时,可以使用 /*  和 */ 将一段比较长的注释括起来
  3. 需要自动生成文档时,可以以 /** 开始,以 */ 结束

注意:

      在Java 中,/* */ 注释不能嵌套。也就是说,如果代码本身包含了一个*/,就不能
      用/* 和*/ 将注释括起来。

3、java的数据类型

     整数:

       Java 提供了4 种整型,具体内容如图所示:

      

       在通常情况下,int 类型最常用。但如果表示星球上的居住人数,就需要使用long 类型
       了。byte 和short 类型主要用于特定的应用场合,例如,底层的文件处理或者需要控制占用
       存储空间量的大数组。

       长整型数值有一个后缀L(如4000000000L)。十六进制数值有一个前缀0x(如
       0xCAFE)。八进制有一个前缀0,例如,010 对应八进制中的8。很显然,八进制表示法比较
       容易混淆,所以建议最好不要使用八进制常数。

     浮点数:

       浮点类型用于表示有小数部分的数值

       

       由于float的精度很难满足要求,所以绝大部分应用程序都采用double 类型。

     char类型数:

       char 类型用于表示单个字符。通常用来表示字符常量。

       例如:'A' 是编码为65 所对应
       的字符常量。与"A" 不同,"A" 是一个包含字符A 的字符串。

       除了可以采用转义序列符\u 表示Unicode 代码单元的编码之外,还有一些用于表示特殊
       字符的转义序列符,如图:

       

     布尔类型数:

       boolean(布尔)类型有两个值:false 和true,用来判定逻辑条件。整型值和布尔值之间
       不能进行相互转换。

       注:java和c++不同,不能使用0和1来代表true和false

4、java的变量

在Java 中,每一个变量属于一种类型(type)。在声明变量时,变量所属的类型位于变量
名之前。这里列举一些声明变量的示例:

注意:java没有void类型

5、运算符

关于运算符的介绍,大家可以参考这篇文章:

https://blog.csdn.net/qq_39326137/article/details/80456717

6、字符串

java中字符串用关键字String表示,定义一个字符串如下:

String test =  "MyTest";

1、字符串拼接:

与绝大多数的程序设计语言一样,Java允许使用  + 号连接字符串或者数字,构成一个新的字符串

2、检测字符串是否相等:

s.equals(t);

如果s和t相等,则返回true,否则返回false

注意:

一定不能使用 == 运算符检测两个字符串是否相等!这个运算符只能够确定两个字符串
是否放置在同一个位置上。当然,如果字符串放置在同一个位置上,它们必然相等。但是,
完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。

3、空串和null串:

空串"" 是长度为0 的字符串

null串表明,没有任何对象与该变量有关联

要检查一个字符串既不是null串,也不是空串,应该这样子:

if(str != null && str.length() != 0)

4、不可变字符串:

String类的对象是不可变的字符串,是存在于堆中的对象,而String变量是指向堆内存String字符串的变量。

我们不能直接改变字符串本身,但是如果需要获取字符串的子字符串时,我们可以使用String类的方法substring(int beginIndex, int endIndex)来获取从第beginIndex位到endIndex位的子字符串。

5、代码点和代码单元:

代码点(Code Point)就是指Unicode中为字符分配的编号,一个字符只占一个代码点,例如我们说到字符“汉”,它的代码点是U+6C49.代码单元(Code Unit)则是针对编码方法而言,它指的是编码方法中对一个字符编码以后所占的最小存储单元。例如UTF-8中,代码单元是一个字节,因为一个字符可以被编码为1个,2个或者3个4个字节;在UTF-16中,代码单元变成了两个字节(就是一个char),因为一个字符可以被编码为1个或2个char(你找不到比一个char还小的UTF-16编码的字符,嘿嘿)。说得再罗嗦一点,一个字符,仅仅对应一个代码点,但却可能有多个代码单元(即可能被编码为2个char)。

    以上概念绝非学术化的绕口令,这意味着当你想以一种统一的方式指定自己使用什么字符的时候,使用代码点(即你告诉你的程序,你要用Unicode中的第几个字符)总是比使用代码单元更好(因为这样做的话你还得区分情况,有时候提供一个16进制数字,有时候要提供两个)。"

6、字符串 API:

String类的API很多,这里就不一一列举了,推荐给大家一个很好的在线的、中文版jdk文档:

http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

7、构造字符串:

有时候,需要由较短的字符串来构建字符串,使用字符串连接的方式效率比较低,这时候,StringBuffer和StringBuilderappend()方法就能派上很大用场了。

str.append(test);    //表示在字符串str后面接上test字符串

如果需要构建字符串就调用toString()方法,就可以得到一个String对象。

注:

StringBuffer和StringBuilder的区别:

StringBuffer(适合用于多线程)是线程安全的可变字符序列,而StringBuilder(适合用于单线程)是线程不安全的可变字符序列。

7、输入输出

1、读取输入

要想通过控制台进行输入,首先需要构造一个 Scanner 对象,并与“标准输入流”System.in 关联。

Scanner in = new Scanner(System.in);

下面是Scanner类的常用方法:

 

注:

因为输入是可见的,所以 Scanner 类不适用于从控制台读取密码

想要读取密码,我们可以使用Console 类:

Console cons = System.console();
String userName =  cons.readLine("User name:");
char[] password = cons.readPassword("Password:");

但是,Console每次只能读取一行,而且没有读取一个单词或者一个数值的方法。

2、格式化输出

java沿用了c语言的 printf 方法,可以指定打印精度和动态的绑定变量,每一个以 % 字符开始的格式说明符都用相应的参数替换。:

System.out.printf("Hello,%s,Next year, you'll be %d",name,age);
System.out.printf("%8.2f",x);

System类的使用:

System类直接继承于Object,它是提供标准输入(in),标准输出(out),错误输出流(err)的类,他们的定义如下:

public static final PrintStream in
public static final PrintStream out
public static final PrintStream err

他们的定义显示他们都是打印流,可以调用PrintStream的所有方法,详细请参考java的java.io.PrinfString部分文档

3、文件的输入输出

要想对文件进行读取,就需要一个用 File 对象构造一个 Scanner 对象,如下所示

Scanner in = new Scanner(Path.get("myFile.txt"));

如果文件名是路径+文件名,记得在每个反斜线前面加个反斜线,进行转义:

c:\\mydirectory\\myfile.txt

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星空是梦想

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

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

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

打赏作者

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

抵扣说明:

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

余额充值