ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java基本程序设计结构

2022-07-13 17:35:42  阅读:132  来源: 互联网

标签:Java Scanner int System 数组 程序设计 out 结构


lesson03

 

3.1 一个简单的Java程序

FirstSample.java

1 public class FirstSample {
2     public static void main(String[] args) {
3         System.out.println("We will not use 'Hello, World!'");
4     }
5 }

 

程序解析

  1. Java区分大小写

  2. 关键字public被称为访问修饰符(access modifier)控制访问级别

  3. 关键字class表示类,后面紧跟着类名,Java中的所有内容都在类中

  4. 源代码的文件名必须与公共类名字相同,并用.java作为扩展名

  5. jvm将从指定类中的main方法开始执行(Java语言规范,main方法必须声明为public)

  6. 每条语句必须用分号结束

  7. “.”点用于调用 Java的通用语法是:object.method(parameters)

 

3.2注释
  1. //最常用的,从//开始到一行结尾

  2. /* 和 */ 从 / *开始到 */结束(不能嵌套)

  3. /** */ 这种注释可以用来自动生成文档

 1 /**
 2 *This is the first sample program in Core Java Chapter(章;阶段) 3
 3 *@version 1.01 2022-07-12
 4 *@author WenZheng
 5 */
 6 public class FirstSample {
 7     public static void main(String[] args) {
 8         System.out.println("We will not use 'Hello, World!'");//输出语句
 9         /*
10            可以用来注释一段语句
11         */
12     }
13 }

 

3.3数据类型

Java是一种强类型语言。就是每个变量声明一种类型。Java中有8中基本类型(primitive type),4种整形、2种浮点、1种用于表示Unicode编码的字符单元的字符类型char、1种boolean类型。

!!浮点数值有舍入误差。例如(2.0-1.1)将打印0.8999999999999999,而不是0.9,是因为二进制无法精确的表示1/10,就像十进制无法精确的表示1/3一样,如果不想有舍入误差就需要用BigDecimal类。

 

3.4变量

在Java中变量的声明尽量靠近变量的第一次使用的地方。

常量(final)final关键字表示这个变量只能被赋值一次(习惯上常量都用大写)

类常量/变量:在main方法外声明;用public static关键字

 

3.5运算符

数值之间的转换会丢失精度,int-->float\long-->float\long-->double

类型不同进行运算会操作数转换成同一种类型进行运算,有double>float>long>int

强制类型转换:double a = 2.13; int b = (int) a; 会丢失一部分精度。

Math.round()返回的是long类型

枚举类型

enum Size {SMALL, MEDIUM, LARGE, EXTRA_LARGE};

 

3.6字符串

"Hello".substring(0, 3); 取字符串的子串。

Java中String类的对象成为不可变字符串,只可以让字符串变量引用另一个地址,而不能修改字符串中的字符。好处是可以共享字符串

1 "hello".equals("hello");  //比较字符串是否相等返回boolean
2 "hello".equalsIgnore("Hello");//比较字符串,忽略字母大小写
3 "hello".compareTo("hello"); //比较字符串是否相等返回int

构建字符串

1 StringBuilder builder = new StringBuilder();
2 builder.append("ha");//需要添加一部内容就append
3 builder.append("ve");
4 builder.append('.');
5 builder.append(1);
6 ​
7 //在需要构建字符串的时候就调用toString方法,将得到一个String对象,其中包含了构建其中的字符序列
8 String a = builder.toString(); 

 

3.7输入输出

输入需要构造一个Scanner对象

Scanner scanner = new Scanner(System.in);//创建Scanner对象
scanner.next();//从键盘输入以空格结束
scanner.nextLine();//以回车结束

 

读取密码使用

Console console = System.console();
String username = console.readLine("User name:");
char[] passwd = console.readPassword("PassWord:");

 

在idea中会读取cosole为null,需要在命令行中执行,并且需要在根目录下执行。

 

 

 

格式化输出

System.out.printf("%1$s %2$tB %2$te, %2$tY", "Date:", new Date());
//格式化字符串的索引必须跟在%后面以$结束,t是日期开头
System.out.printf("%s %tB %<te, %<tY", "Date:", new Date());
//<表示与前面格式说明中的参数将被在其使用

 

 

  

文件的输入与输出

 1 //想要对文件进行读取就需要有个用File对象构造一个Scanner对象
 2 Scanner in = new Scanner(Paths.get("myFile.txt"), "UTF-8");//Paths.get得到路径
 3 //也可以这样
 4 File file = new File("myFile.txt");
 5 Scanner inputF = new Scanner(file);
 6 ​
 7 Scanner scanner = new Scanner("myFile.txt");//Scanner会把路径当成字符串处理
 8 ​
 9 String dir = System.getProperty("user.dir");//得到启动路径
10 //写入文件,如果该文件不存在,创建该文件。可以像输出到sytem.out一样使用print\println\printf
11 PrintWriter out = new PrintWriter("myfile.txt", "UTF-8");

 

3.8控制流程(跳过)

 

3.9大数值

如果基本类型不能满足需求,可以使用java.math包中的BigInteger和BigDecimal

BigInteger类实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点数运算。

使用valueOf方法可以将普通的数值转换为大数值:

BigInteger a = BigInteger.valueOf(10000);

大数值不能用运算符处理,需要用类中的方法:

BigInteger c = a.add(b); //c = a + b
BigInteger d = c.multiply(b); // d = c * b

 

3.10数组

求数组元素个数

int[] array = {1,2,3,4,5,6,7,8,9,0,1,2};
System.out.println(array.length);

for each循环(增强的faor循环)

int[] array = {1,2,3,4,5,6,7,8,9,0,1,2};
for (int s: array) {      //遍历数组不需要在意下标
    System.out.print(s);
}

数组排序:

Arrays.sort(red);  //sort方法可以对数组排序

二维数组:

 1 int[][] doubleArray1 = {{1,2,3},{2,3,4},{3,4,5}};
 2 ​
 3 for (int[] s : doubleArray1) {
 4     for (int b : s) {
 5         System.out.print(b);
 6     }
 7     System.out.print(" ");
 8 }
 9 //deepToString打印二维数组
10 System.out.println(Arrays.deepToString(doubleArray1)); 

 

Java其实没有多维数组,只有一维数组,多维数组被称为数组的数组,它们的存储方式是这样的:

 

 所以可以创建不规整数组

 

##重点(值传递,引用传递)

int[] array = new int[12];
int[] next = array;  //传递的是一个引用,现在next和array指向的是同一个内存
next[3] = 13;  //现在array[3] 也等于 13;

如果想要将一个数组的所有只拷贝到一个新的数组中去就需要使用Arrays类的copyOf方法:

int[] newArray = Arrays.copyOf(array, array.length);

 

 

标签:Java,Scanner,int,System,数组,程序设计,out,结构
来源: https://www.cnblogs.com/WaZiShare/p/16474648.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有