Java tipos de lenguaje soportado se dividen en dos categorías:
基本数据类型
(tipo primitivo) y引用类型
(tipo de referencia).
tipos de datos básicos
tipos numéricos
tipo entero
byte
Un byte
tipo de rango de 8 bits (1 byte) en la memoria-128(-2^7) ~ 127(2^7 -1)
corto
Un short
tipo representó el 16 bits (2 bytes) en el intervalo de memoria-32768(-2^15) ~ 32767(2^15-1)
En t
Un int
tipo de memoria representó el 32 bits (4 bytes) de rango-2147483648(-2^31) ~ 2147483647(2^31-1)
largo
Un long
tipo de contabilidad para 64 bits (8 byte) cubre en la memoria-2^63 ~ 2^63-1
Si directamente a un número entero más pequeño (en
byte
oshort
asignadas dentro de un tipo de rango)byte
oshort
variables, el sistema establece automáticamente el valor como un enterobyte
o unshort
tipo de manejar.
Si un número entero grande (tipo INT fuera de rango cuándo), Java lo hace automáticamente, siempre y tipo entero de manejar. Si desea que el sistema a un valor como mucho tipo entero de manejar, debe añadirse después de que el valor enterol
oL
sufijo.
tipo de punto flotante
tipos de coma flotante de Java son fijos, independientemente del número de rango de la tabla y la longitud del campo, la longitud del campo y rango de números de la mesa de la máquina, Java sigue el tipo de punto flotante IEEE estándar, una notación binaria científica para representar.
flotador
Una cuenta de flotador en la memoria de 4 bytes, 32 bits, el bit 1 es el bit de signo, el siguiente índice de 8 bits representado en los 23 bits siguientes representan.
doble
En representación de un tipo de doble en la memoria de 8 bytes, 64 bits, 1 bit representa el bit de signo, los siguientes 11 bits representan el exponente, en la siguiente 52 mantisa.
Debido a que Java es un número de coma flotante binario en notación científica para los números de punto flotante, y por lo tanto puede no ser una representación exacta de un número de coma flotante. Por ejemplo, para
5.12345f
asignar unfloat
tipo de variable, esta variable para ver si el siguiente valor de la variable de salida ha cambiado. Si necesita una precisión de punto flotante, que puede ser utilizadoBigDecimal
clase.
El valor por defecto es de coma flotante tipodouble
si quieresJava
escribir un valor de punto flotante comofloat
para hacer frente a, que debe ser seguido por un tipo de punto flotante en la parte posterior de este valorf
oF
.
Java también ofrece valores de punto flotante de tres especiales: infinito positivo, infinito negativo Japón y Africa utilizan para indicar desbordamiento o error. 0 flotación positiva dividido por (los enteros 0 Java y calcula automáticamente el proceso de flotación de punto flotante 0.0) para dar un infinito positivo (POSITIVE_INFINITY Doble / clase Float) utilizando división de punto flotante por cero para obtener un infinito negativo negativo ( NEGATIVE_INFINITY clase doble / Float)
FIG. 0,0 / 0,0 habrá un no número NaN.
Todo infinito positivo y el infinito negativo sobre todo igual, no igual a todos los no-número.
100_000_000_000 valores de_
fácil lectura. Ningún significado real.
carácter
carbonizarse
Hay tres representación de caracteres
- Directamente especificada valor de carácter, por ejemplo, por un solo carácter
'A'
,'9'
y'0'
similares. - Mediante la transferencia de un valor especial carácter de identificación de caracteres, por ejemplo
'\n'
,'\t'
- uso directo
Unicode
valores que representan los valores de caracteres en el formato'\uXXXX'
, lo queXXXX
representa un número entero en hexadecimal.
tipo de caracteres puede también ser usado para representar códigos hexadecimales, la gama de '\u0000'~'\uFFFF'
total puede representar 65535
caracteres, el primero 256 ( '\u0000'~'\u00FF'
), y los caracteres en caracteres ASCII completo solapamiento.
Cuando el personaje de almacenamiento de ordenador subyacente, el carácter se almacena en el número correspondiente, por lo que char
el valor puede ser utilizado directamente como el tipo de plástico, que corresponde a una de 16 bits número entero sin signo en el intervalo de la tabla 0~65535
.
Si el rango de 0 a 65535 uno int
desde un entero char
variable de tipo, el sistema automáticamente int
entero como un char
tipo de tratamiento
Boole
booleano
Se utiliza para representar lógico 真
o 假
, boolean
el valor de tipo puede ser true
o false
no puede ser usado 0
o 非0
está representado, otros tipos de datos de base no se pueden convertir en boolean
tipo.
especificación Java no especifica las variables de memoria de tipo booleano ocupadas. Dado que la mayoría de ordenador permite que la unidad de asignación de memoria es un byte de memoria mínima (8 bits), y por lo tanto la mayor parte del tiempo efectivamente ocupada bit 8.
Especificación de Java Virtual Machine menciona en el libro:
- Ningún valor específico para las instrucciones de código de bytes booleanas en la máquina virtual de Java, Java expresiones del lenguaje operación
booleana, el tipo de datos int utiliza la máquina virtual de Java después de la compilación en su lugar.- máquina virtual Java soporta directamente los tipos booleanos de matrices, instrucciones de máquina virtual Navarra véase el Capítulo 6, Sección newArray puede crear una matriz tal. El acceso y la modificación de la baload común de tipo matriz de bytes y la instrucción booleano tipo de matriz bastore.
Debido virtual digamos Especificación de la Máquina, valores booleanos se utilizan después de compilar datos de tipo int máquina virtual Java en su lugar y int es de cuatro bytes, entonces el valor booleano es de 4 bytes.- El acceso y la modificación de la matriz de bytes tipo común y bastore baload tipo de instrucción booleano de la matriz, ya que tanto el común sólo los mismos dos bytes a modo general, la matriz de bytes en un byte es un byte, entonces la matriz booleana booleana es 1 byte.
Resumen: matriz booleana en el caso de 1-byte, 4 de un solo byte booleano.
tipos de datos de referencia
categoría
interfaz
colección
operadores
Los operadores aritméticos
+
: Operador de adición (también como operador de concatenación de cadenas)-
: Operador de substracción*
: Operador de multiplicación/
: Operador División
si ambos operandos son números enteros de tipo división, el resultado del cálculo es un número entero, es el resultado natural de la división redondeado tomado. Si la división dos operandos son de tipo enteros, el divisor no es 0, de lo contrario, dará lugar a la división por cero excepción. Si uno o ambos operandos son de punto flotante, número de coma flotante se calcula el resultado es, el resultado es un resultado natural de la división, y en este momento permite que el divisor es 0 o 0.0, el resultado se infinito positivo agitando infinito negativo.%
: El resto operador++
: Desde Canadá.- Puesto que la adición es los operadores unitarios, que operan sólo un número.
- Desde plus operador puede operar un solo número (conformación, de punto flotante) variable, constante o inoperable expresión.
- Si ++ a la izquierda, el primer operando incrementa en uno, y sólo entonces los operandos en la expresión aritmética. Si ++ a la derecha, el primer operando en la expresión aritmética, y sólo entonces añadir el operando 1
--
: Decremento. operador unitario. Y++
similares, excepto que el operando -1
Los operadores bit a bit
&
: AND bit a bit. Cuando los dos regresaron mientras que sólo el 1 a 1.|
: OR bit a bit. Mientras hay un retorno de 1 a 1.~
: Non-bit. operadores unitarios, cada bit de operando (incluyendo el bit de signo) están negados.^
: XOR bit a bit. Volver a 0 cuando los dos son lo mismo, al mismo tiempo, no devuelve 1.<<
: Operador de desplazamiento a la izquierda.>>
: Operador de desplazamiento a la derecha.>>>
: Sin firmar operador de desplazamiento a la derecha.
Los operadores lógicos
&&
: Con dos operandos deben tanto antes como después detrue
que sea devueltotrue
, de lo contrario después de una comidafalse
.&
: No provoque un cortocircuito y, con&&
el mismo efecto, pero no lo hará corto circuito.||
: O, siempre y cuando uno de los dos operandostrue
es devueltotrue
, de lo contrariofalse
|
: No provoque un cortocircuito o la función de la||
misma, pero no en circuito corto.!
: No invertida.^
: Cuando tanto el número de operación XOR no vuelve al mismo tiempo.true
, Simultáneamente con el regresofalse
operador ternario
?:
Ternaria operador sólo una sintaxis es(expression) ? if-true-statement : if-false-statement
NOTA:
Dado que sólo suma y la resta para la auto sienten variable de vergüenza, operando los valores no se pueden utilizar directamente la cantidad, constante o expresión.
Operadores de asignación
=
El operador de asignación extendida
+=
: Parax+=y
, es decir, correspondiente ax = x + y
-=
: Parax-=y
, es decir, correspondiente ax = x - y
*=
: Parax*=y
, es decir, correspondiente ax = x * y
/=
: Parax/=y
, es decir, correspondiente ax = x / y
%=
: Parax%=y
, es decir, correspondiente ax = x % y
|=
: Parax|=y
, es decir, correspondiente ax = x | y
^=
: Parax^=y
, es decir, correspondiente ax = x ^ y
<<=
: Parax<<=y
, es decir, correspondiente ax = x << y
>>=
: Parax>>=y
, es decir, correspondiente ax = x >> y
>>>=
: Parax>>>=y
, es decir, correspondiente ax = x >>> y
Los operadores de comparación
>
: Más de aproximadamente varios lados única operación de apoyo es un tipo numérico.>=
: No menos, el número de los lados izquierdo y derecho del soporte operación sólo un tipo numérico.<
: Menor que, el número de soporte derecha e izquierda única operación es de tipo numérico.<=
: Menos de o igual, sólo admite lados izquierdo y derecho del número de operación es un tipo numérico.==
: Igual a, si la comparación de dos operandos son de tipo numérico, a pesar de dos tipos diferentes de operandos, siempre que sus valores son iguales, los rendimientostrue
si los dos operandos es un tipo de referencia, a continuación, la comparación de los dos operandos. una referencia a la dirección.!=
: No es igual para comparar el tipo de datos, sin importar el tipo, sólo el valor de comparación para la comparación de referencia dirección de referencia de tipo.
La precedencia de operadores
- No escriba una expresión demasiado compleja si una expresión compleja, que debe dividirse en pasos para realizar
- No se exceda en depender de un operador para controlar el orden de prioridad de ejecución de expresión, tanto como sea posible por
()
controlar