-
Notifications
You must be signed in to change notification settings - Fork 0
Java
Etsu edited this page Aug 26, 2017
·
28 revisions
____.
| |____ ___ _______
| \__ \\ \/ /\__ \
/\__| |/ __ \\ / / __ \_
\________(____ /\_/ (____ /
\/ \/
sudo add-apt-repository ppa:webupd8team/java
aptitude update
aptitude search oracle
aptitude install oracle-java8-installer oracle-java7-installer
javac HelloWorld.java
javap -v HelloWorld.class
java HelloWorld
java -classpath classes_dir HelloWorld
java -classpath lib.jar HelloWorld.java
java -classpath lib.jar:hw.jar HelloWorld
jar cfe hw.jar HelloWorld HelloWorld.class
jar tf hw.jar
jar xf hw.jar
java -jar hw.jar
java -classpath hw.jar HelloWorld
Более подробно о рекомендуемом стиле кода можно почитать здесь:
- Старый документ Code Conventions for the Java Programming Language
- Черновик нового документа Java Style Guidelines
- Статья на русском Рекомендации к стилю кода
System.out.println(variable.getClass().getName());
int primitive = 0
// boxing
Integer reference = Integer.valueOf(primitive);
// unboxing
int backToPrimitive = reference.intValue();
long fromString = Long parseLong("12345");
String fromLong = Long.toString(12345);
String concatenation = "area" + 51;
String[] array = new String[] {"John", "Mary", "Bob"};
System.out.println(Arrays.toString(array));
static int maxArray(int[] numbers) { ... };
maxArray(new int[] {1, 2, 3});
static int maxVarargs(int... numbers) { ... };
maxVarargs(1, 2, 3);
import java.util.Arrays;
int[] a = {1, 2, 3};
int[] b = {4, 5, 6};
boolean equals = Arrays.equals(a, b);
boolean equals = Arrays.deepEquals(a, b);
int[] a = {1, 2, 3};
System.out.println(Arrays.toString(a));
System.out.println(Arrays.deepToString(a));
char[] charArray = {'a', 'b', 'c'};
String string = new String(charArray);
char[] charFromString = string.toCharArray();
String s = "stringIsImmutable";
int length = s.length();
char firstChar = s.charAt(0);
boolean endsWithTable = s.endsWith("table");
booalen containsIs = s.contains("Is");
String substr = s.substring(0, 6);
String afterReplace = s.replace("Imm", "M");
String allCapitals = s.toUpperCase();
boolean equal2 = s1.equalsIgnoreCase(s2);
if (weatherIsGood) {
System.out.println("Wheater is good");
} else {
System.out.println("Wheater is bad");
}
// same effect, but much shorter
System.out.println("Wheater is "
+ (wheaterIsGood ? "good" : "bad"));
switch (digit) {
case 0:
text = "zero";
break;
case 1:
text = "one";
break;
// ...
default:
text = "???";
}
do {
goShopping();
} while (haveTime() && haveMoney());
for (String arg : args) {
System.out.printls(arg);
}
// Друг за другом может быть объявлено несколько классов, но только один из них может быть public.
// Его имя должно соответствовать имени файла
public final class Integer {
// Ключевое слово final означает что от класса нельзя наследоваться
}
public final class Integer {
// final - означает что значение полю можно присвоить только один раз
// Мб также применён к методам и локальным переменным
private final int value;
// Явное присвоение значения полю можно сделать прямо в объявлении поля или в конструкторе
private final int zero_value = 0; // 0, null, false в зависимости от типа поля
public Integer(int value) {
this.zero_value = zero_value;
// Компилятор проверит, что к моменту выхода из констуктора значение полю будет обязательно присвоено
// Иначе - ошибка компиляции
}
}
// Констуктор - метод, вызываемый при создании класса
// Например, когда кто-то в программе применяет оператор new (new Integer(33))
// Задача конструктора - инициализировать состояние объекта и подготовить его к использованию
package java.lang;
// Когда в классе не объявлен ни один конструктор,
// то неявно создаётся конструктор по умолчанию (без параметров)
// Т.е. даже когда у класса нет конструкторов, его экземпляр можно создать при помощи оператора new
public final class Integer {
private final int value;
// Объявление конструктора состоит из модификатора доступа и имени класса
// Конструктор может принимать параметры
public Integer(int value){
// Если параметр конструктора принимает такой же параметр как имя класса,
// то для доступа к полю класса используется префикс this
// this - это ссылка на текущий экземпляр,
// в контексте которого выполняется текущий конструктор или метод
// Обычно писать this не нужно, но в случае конфликта имён поля и локальных параметров необходимо
this.value = value;
}
// ...
}
package java.math;
public final class Math {
// Если нужно запретить создание экземпляров класса, то нужно сделать конструктор приватным
/**
* Don't let anyone instantiate this class.
*/
private Math() {}
// ...
}
package java.math;
public class BigInteger {
// В классе может быть несколько перегруженных версий конструкторов с разными наборами параметров
public BigInteger(String val){
// Из одного конструктора можно вызывать другой
this.(val, 10); // defaul value
}
public BigInteger(String val, int radix){
// ...
}
}
package java.time;
public enum DayOfWeek {
MONDAY, // <- public static final
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY;
// fields, methods
}
for (DayOfWeek day : DayOfWeek.values()) {
System.out.println(day.ordinal() + " " + day.name());
}
package java.lang;
public final class StringBuilder
extends AbstractStringBuilder {
@Override
public StringBuilder append(String str){
// ...
}
// base method in AbstractStringBuilder:
// AbstractStringBuilder append(String str)
}
package java.lang;
public final class StringBuilder
extends AbstractStringBuilder {
public StringBuilder() {
super(16);
}
@Override
public StringBuilder append(String str) {
super.append(str);
return this;
}
// ...
}
- equals()
- toString()
- hashCode()
package java.lang;
public final class String /*extends Object*/ {
@Override
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String other = (String)anObject;
// ...
}
return false;
}
// ...
}
package org.stepic.java.orders;
import java.time.LocalDate;
public interface OrderService {
Order[] getOrdersByClient(long clientId);
// Order[] getOrdersByClient(long clientId, LocalDate date);
default Order[] getOrdersByClient(
long clientId, LocalDate date) {
Order[] allOrders = getOrdersByClient(clientId);
return Orders.filterByDate(allOrders, date);
}
}
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
int b = s.nextInt();
System.out.println(a + b);
}
}
// модификаторы protected и private не применимы к классам верхнего уровня
public class ModifiersDemo {
// доступ отовсюду
public static void visibleEverywhere() {}
// доступ только для классов наследников и классов текущего пакета
protected static void inSubclasses() {}
// (отсутствие модификатора) доступ только в пределах пакета
static void inPackage() {}
// доступ только в пределах класса
private void inClass() {}
}