Java核心技术(一)——Java的基本程序设计结构

1.1 数据类型

1.1.1整型

  • int:4字节
  • short:2字节
  • long:8字节
  • byte:1字节
    注意:Java无任何无符号整型。

1.1.2浮点类型

  • float:4字节(后缀F)
  • double:8字节(后缀D或无后缀)

1.1.3boolean类型

  • false
  • true
    用于逻辑判定,整型值和布尔值之间不能进行相互转化

1.2 变量

1.2.1常量

  • Java中用final指示常量,一旦赋值,就不可再改变。

final double CM_PER_INCH = 2.54;

  • 一个类中的多个方法使用

public static final double CM_PER_INCH = 2.54;

1.3运算符

1.3.1数学函数与常量

  • sqrt:计算一个数值的平方根,可以用sqrt的方法
double x = 4;
double y = Math.sqrt(x);
System.out.println(y);//print 2.0
  • pow:幂运算
double y = Math.pow(x,a);//将y的值设定为x的a次幂
  • 三角函数
Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2
  • 自然对数
Math.exp
Math.log
Math.log10
  • 用于表示π和e的常量
Math.PI
Math.E

1.3.2 强制类型转换

double x = 9.997int nx = (int)x;//强转后nx的值为 9,而非10
  • 浮点数的四舍五入:
double x = 9.997int nx = (int)Math.round(x);//现在x的值为10

1.4 字符串

String e = "";//an empty string
String greeting = "Hello";

1.4.1子串

  • substring:从母串中提取子串
String greeting = "Hello";
String s =greeting.subsring(0,3);//s的值为Hel

1.4.2拼接

  • java允许使用 + 号拼接两个字符串
String greeting = "Hello";
String name = "World";
String message = greeting + name;// message = "HelloWorld"

注意,message中间无空格

System.out.println("The message is " + name);

上式合法

  • 将多个字符串放在一起,进行分隔
String all = String.join("/","S","M","L","XL");//all is the string "S/M/L/XL"
  • 字符串的替换
greeting = greeting.substing(0,3) + "p!";//greeting由“Hello”变成了“Help!”
  • 字符串的相等检查
s.equals(t);//检查s字符串是否和t相等
"Hello".equals(greeting);//合法的
"Hello".equalsIgnoreCase("helli");//忽略大小写的字符串相等检查
  • 码点与代码单元
String greeting = "Hello";
int n = greeting.length();//n is 5
char first = greeting.chatAt(0);//first is 'H'
  • 构建字符串
StringBuilder builder = new StringBuilder();//构建了一个空的字符串构建器
builder.append(ch);//append a single character
builder.append(str);//append a string

1.4 输入输出

  • 读取输入
Scanner in = new Scanner(System.in);//构造一个Scanner对象
System.out.print("What is your name?");
String name = in.nextLine;//输入一整行,可包括空格
String name = in.next;//输入一个单词,空格作为分隔符
String name = in.nextInt;//输入一个整型参数
String name = in.nextDouble;//输入一个浮点数
  • 静态创建一个格式化的字符串
Sting message = String.format("Hello,%s. Next year, you will be %d",name, age)
  • 文件的输入与输出
Scanner in = new Scanner(Path.get("路径\\myfile.txt"),"UTF-8");

如果路径中有 “ \ ” 就要记住在每个反斜杠之前再加一个反斜杠:
C:\mydirectory\myfile.txt

1.5控制流程(和C一样)

1.6大数值

  • 大数值的转化
BigInteger a = BigInteger.valueOf(100);//将普通数值转化成大数值
BigInteger c = a.add(别);//c = a + b
BigInteger d = c.multiply(b.add(BigTnteger.valueOf(2)));//d = c * (b + 2)

1.7 数组

  • 声明
 int [] a;//声明了变量a,并未初始化为一个真正的数组
 int a[];
 int [] a = new int[100]; //用了new运算符创建了数组
  • for each 循环:依次处理数组中的每个元素
for(int element : a)
	System.out.println(element);//打印数组a的每一个元素,一个元素占一行

以上代码等同于

for(int i = 0; i < a.length; i++)
	System.out.println(a[i]);

相比之下,for each 更简洁,不必考虑下标的起始值和终止值

  • Java中允许将一个数组的变量拷贝给另一个数组
int[] luckNumbers = smallPrimes;//这里类似于指针的赋值,并非开辟了新的数组
luckNumbers[5] = 12;//现在,smallPrimes[5] 是 12.

开辟一个新的数组,并且复制

int[] copiedLuckNumbers = Arrays.copyOf(luckNumbers, 2 * luckNumbers.length)
  • 数组排序
int[] a = new int [1000];
...
Array.sort(a);//优化的快速排序
  • 多维数组类似于C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值