Em primeiro lugar mencionar que, na linguagem JAVA, quando temos a declarar um inteiro longo ou de precisão simples tipos numéricos de variáveis, muitas vezes eles vêm para trás para ver aparecer em um digitais F/f
, L/l
. Então, por que esses logotipos devem ser adicionados?
Isso ocorre porque: em Java, quando o desenvolvedor digita um número, como :, 25
o tipo padrão desse número é o int
tipo e o intervalo de dados suportado é o seguinte: Quando o tamanho do nosso número excede o int
tamanho suportado pelo tipo, o tipo int suporta O tamanho da memória não pode ser satisfeito, portanto, o compilador relatará um erro de compilação. Para declarar um número inteiro longo, você precisa adicionar no final L/l
, com um compilador de alta velocidade, este é um número inteiro longo. ,
É o mesmo que
0b
identificar dados binários em Python ,0o
octal e0x
hexadecimal
Da mesma forma, no compilador java, o valor decimal é padronizado para double
duplicar o tipo de precisão.Quando escolhemos a precisão única para economizar memória, precisamos usar a F/f
identificação.
1.1 Tipo de dados original:
public class Main {
public static void main(String[] args) {
long testLong = 2_234_123_123L;
float testFloat = 2.34F;
}
}
1.2 Tipos de referência
import java.util.Date;
public class Main {
public static void main(String[] args) {
byte age = 30;
Date now = new Date();
System.out.println(now);
}
}
A atribuição do tipo original alocará nova memória e apontará para um endereço diferente.
A atribuição do tipo de referência apenas atribui o endereço a outra variável, a memória para a qual ele aponta é a mesma, portanto, todas as alterações serão alteradas.
import java.awt.*;
public class Main {
public static void main(String[] args) {
Point point1 = new Point(1, 1);
Point point2 = point1; //java.awt.Point[x=1,y=1]
point1.x = 2;
System.out.println(point2); //java.awt.Point[x=2,y=1]
}
}
1.3 Dois métodos de geração de matriz, matriz (comprimento fixo)
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] numbers = new int[3];
numbers[0] = 1;
numbers[2] = 2;
int[] numbers2 = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(numbers));
System.out.println(numbers2.length);
}
}
Observe que, para a entrada da matriz, é necessário apresentar o pacote Arrays e chamar o método toString.Para matrizes de alta dimensão, é necessário usar deepToString
1.4 números de formato java
import java.text.NumberFormat;
public class Main {
public static void main(String[] args) {
NumberFormat percent = NumberFormat.getPercentInstance();
String res = percent.format(0.456);
System.out.println(res);
}
}
Por padrão, existem conversões para porcentagens e moedas.
1.5 Lendo o fluxo de entrada
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("姓名:");
String res = scanner.nextLine().trim();
System.out.println("你是:" + res);
;
}
}
Projeto: Calcular a oferta de empréstimo mensal:
import java.text.NumberFormat;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//计算贷款
Scanner scanner = new Scanner(System.in);
System.out.print("请输入本金: ");
float PrincipalAmount = scanner.nextFloat();
System.out.print("请输入年利率: ");
float interestRateOfYear = scanner.nextFloat();
System.out.print("请输入贷款年份: ");
int numberOfPaymentsByYear = scanner.nextInt();
float P = PrincipalAmount;
float i = interestRateOfYear / 12 / 100;
int n = numberOfPaymentsByYear * 12;
double M = P * i * Math.pow(1 + i, n) / (Math.pow(1 + i, n) - 1);
System.out.println("您每月需还贷: " + NumberFormat.getCurrencyInstance().format(M));
}
}
Funciona direito, mas um ~ o (  ̄ ▽  ̄ ) o, é muito ingênuo, veja como o grandalhão escreve
import java.text.NumberFormat;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//计算贷款
final byte MONTHS_IN_YEAR = 12;
final byte PERCENT = 100;
Scanner scanner = new Scanner(System.in);
System.out.print("请输入本金: ");
float principal = scanner.nextFloat();
System.out.print("请输入年利率: ");
float interestRateOfYear = scanner.nextFloat();
System.out.print("请输入贷款年份: ");
byte numberOfPaymentsByYear = scanner.nextByte();
float monthlyInterest = interestRateOfYear / MONTHS_IN_YEAR / PERCENT;
int numberOfPayments = numberOfPaymentsByYear * MONTHS_IN_YEAR;
double mortgage = principal
* monthlyInterest * Math.pow(1 + monthlyInterest, numberOfPayments)
/ (Math.pow(1 + monthlyInterest, numberOfPayments) - 1);
System.out.println("您每月需还贷: " + NumberFormat.getCurrencyInstance().format(mortgage));
}
}
O grandalhão considerou
魔法数字
o efeito, então ele o declarou com uma constante.