JVM : class 바이트 코드를 실행 가능
JRE : 자바를 실행시키기 위해 필요
JDK : 자바 프로그래밍 시 필요한 컴파일러 포함( .java → .class), 플랫폼에 종속적임
Java SE : 표준적인 자바 플랫폼
Java EE : 서버 측에서 개발하기 위한 플랫폼
1. Intellij IDEA 설치
Jetbrain 사에서 제작
Ultimate는 유료지만 Community Edition은 무료입니다!
최고의 Java 및 Kotlin IDE인 IntelliJ IDEA를 다운로드하세요
www.jetbrains.com
- 단축키
- 액션, 옵션 찾기 : [Ctrl] + [Shift] + [A]
- 찾기 : [Shift] x 2
- 자동 완성 : [Ctrl] + [Space]
- 템플릿 보기 : [Ctrl] + J
- 스마트 자동 완성 : [Ctrl] + [Shift] + [Space] • 문장 마지막의 세미콜론 까지 완성
- 실행문 완성 : [Ctrl] + [Shift] + [Enter] • if, for 등 실행문 구조 완성
- 커서 위치와 무관한 엔터 : [Shift] + [Enter]
- 오류 해결을 위한 가이드 제시 : [Alt] + [Enter]
- 프로젝트 빌드 : [Ctrl] + [F9]
- 실행 : [Shift] + [F10], [Ctrl] + [Shift] + [F10]
- 임포트 추가 : [Ctrl] + [Alt] + O
- 코드 정렬 : [Ctrl] + [Alt] + L
- 선택된 코드 감싸기 : [Ctrl] + [Alt] + T
- if...else, try...catch 등
- 이름 변경 : [Shift] + [F6]
- 메서드 인수 정보 보기 : [Ctrl] + P
- 선택 블록 복제 : [Ctrl] + D
- 커서 위치 한 줄 삭제 : [Ctrl] + Y
- 행 주석 토글 : [Ctrl] + /
- 안쪽 실행문에서 블록으로 점점 선택 확장 : [Ctrl] + W
- 단축언어
- 메인 메서드 정의 : psvm
- 반복문 ... : itar(배열), itco(컬렉션), itli(리스트), iter(for~each)
- System.out.println() : sout
- 글꼴 바꾸기
https://github.com/githubnext/monaspace/releases/tag/v1.101
Release v1.101 · githubnext/monaspace
✨ v1.100 was so exciting, that we were itching to do another release. v1.100 was perfect, but v1.101 is perfecter. Please don't rat us out to our middle school English teachers. 👉 Everything fixed ...
github.com

모든 사용자용으로 설치하기


설정에서 글씨체 바꾸기
2. 자바 타입
기본형(프리미티브) 타입 : 값을 Stack 메모리에 저장 ☞ 지역변수에 저장되어 속도가 빠르가 단순함
참조형(레퍼런스) 타입 : 주소를 Heap 메모리에 저장 ☞ 객체와 인스턴스가 저장되어 메모리 관리가 유동적
package com.example.hello;
public class IntegerValues {
public static void main(String[] arg){
byte a = Byte.MAX_VALUE;
short b = Short.MAX_VALUE;
int c = Integer.MAX_VALUE;
long d = Long.MAX_VALUE;
System.out.println("byte a의 값은 " + a);
System.out.println("short b의 값은 " + b);
System.out.println("int c의 값은 " + c);
System.out.println("long d의 값은 " + d);
}
}
package com.example.hello;
public class RealNumberValues {
public static void main(String[] args) {
float a = Float.MAX_VALUE;
double b = Double.MAX_VALUE;
System.out.println("fload a의 값 : " + a);
System.out.println("doube b의 값 : " + b);
}
}
자바는 정수로 나누면 정수로 계산하기 때문에 소숫점을 포함한 실수로 변환해주기 (cast)
public class CalculationDemo {
public static void main(String[] args) {
int i;
long l;
double d;
i = 5/2;
System.out.println("5/2 : " + i); // 2
d = 5/2;
System.out.println("5/2 : " + d); // 2.0
d = (float)5/(float)2;
System.out.println("5/2 : " + d); // 2.5
d = 5/(float)2;
System.out.println("5/2 : " + d); // 2.5
d = 5.0/2.0;
System.out.println("5/2 : " + d); // 2.5
l = 10_000_000 * (long)10_000_000;
l = 10_000_000 * 10_000_000L;
System.out.println(l); // L을 붙이지 않으면 이상하게 나옴!
}
}
- 클레스 이름 바꾸기
이름 변경한 후 Enter
- 문자열 비교
public class StringExample {
public static void main(String[] args) {
String greeting = "안녕하세요";
System.out.println(greeting); //안녕하세요
String name = new String("Java 사용자");
System.out.println(name); // Java 사용자
char[] charArray = {'J','a', 'v', 'a', ' ', '프', '로', '그', '래', '머'};
String programmer = new String(charArray);
System.out.println(programmer); // Java 프로그래머
String fullName = "Kim" + " " + "Young";
System.out.println(fullName); // Kim Young
StringBuilder sb = new StringBuilder();
sb.append("문자열 ").append("생성 ").append("예제");
String result = sb.toString();
System.out.println(result); // 문자열 생성 예제
}
}
String a = new String("Hello") : 명시적 초기화
String a = "Hello" : 암시적 초기화
- 문자열 비교 메서드
1. compareTo
2. equals, equalsIgnoreCase
public class StringCompareExample {
public static void main(String[] args) {
String firstString = "Hellow World";
String secondString = "Hellow World";
String thirdString = "hellow World";
int comparisonResult = firstString.compareTo(secondString);
System.out.println("firstString과 secondString 비교: " + comparisonResult); // 0
boolean equalsResult = firstString.equals(secondString);
System.out.println("firstString과 secondString이 같음: " + equalsResult); // true
comparisonResult = firstString.compareTo(thirdString);
equalsResult = firstString.equals(thirdString);
System.out.println("firstString과 thirdString 비교: " + comparisonResult); // -32
System.out.println("firstString과 thirdString이 같음: " + equalsResult); // false
}
}
- 문자열 조작 메서드
1. concat
2. indexOf : 시작 위치찾기
3. isEmpty()
4. length()
public class StringManipulationDemo {
public static void main(String[] args) {
String baseString = "Hello";
String stringTtoConcat = " World";
String searchString = "lo";
String concatenatedString = baseString.concat(stringTtoConcat);
System.out.println(concatenatedString); // Hello World
int index = concatenatedString.indexOf(searchString);
System.out.println(index); // 3
boolean isEmpty = baseString.isEmpty();
System.out.println(isEmpty); // false
int length = concatenatedString.length();
System.out.println(length); // 11
}
}
5. substring(시작 인덱스) : 시작 인덱스부터 문자열 추출
6. toLowerCase
7. toUpperCase
8. trim : 양쪽 공백 제거
public class StringMethodsDemo {
public static void main(String[] args) {
String originalString = " Java Programming ";
// substring 메서드를 사용하여 부분 문자열 추출
String subString = originalString.substring(5);
System.out.println("substring(5) 결과: " + subString); // "Programming "
// toLowerCase 메서드를 사용하여 문자열을 소문자로 변환
String lowerCaseString = originalString.toLowerCase();
System.out.println("toLowerCase() 결과: " + lowerCaseString); // " java programming "
// toUpperCase 메서드를 사용하여 문자열을 대문자로 변환
String upperCaseString = originalString.toUpperCase();
System.out.println("toUpperCase() 결과: " + upperCaseString); // " JAVA PROGRAMMING "
// trim 메서드를 사용하여 양쪽 공백 제거
String trimmedString = originalString.trim();
System.out.println("trim() 결과: " + trimmedString); // "Java Programming"
}
}
- 배열 생성 방법
length로 길이 재기
public class ArrayCreationDemo {
public static void main(String[] args) {
int[] scoreMethod1 = {100, 90, 50, 95, 85};
int[] scoreMethod2 = new int[] {100, 90, 50, 95, 85};
int[] scoreMethod3;
scoreMethod3= new int[] {100, 90, 50, 95, 85};
System.out.println("방법 1로 생성한 배열: ");
for (int score : scoreMethod1){
System.out.print(score+" ");
}
System.out.println();
System.out.println("방법 2로 생성한 배열: ");
for (int score : scoreMethod2){
System.out.print(score+" ");
}
System.out.println();
System.out.println("방법 3로 생성한 배열: ");
for (int score : scoreMethod3){
System.out.print(score+" ");
}
System.out.println();
}
}
- 동적 배열 ArrayList<>
1. add(위치, 요소)
2. get()
3. size()
import java.util.*;
public class DynamicArrayDemo {
public static void main(String[] args) {
ArrayList<String> stringList = new ArrayList<>();
stringList.add("Java");
stringList.add("Python");
stringList.add(1,"C++");
stringList.remove("Python"); // 문자열 제거
String elementAtIndex = stringList.get(0); // 요소 가져오기
int size = stringList.size(); // 사이즈 가져오기
System.out.println("인덱스 1의 요소: " + elementAtIndex); // Java
System.out.println("ArrayList의 크기: " + size); // 2
System.out.println("ArrayList의 현재 요소들:");
for (String s : stringList){
System.out.print(s + " "); //Java C++
}
}
}
- 클래스 배열 만들기 (Ball)
class Ball{
String name;
public void setName(String name){ this.name = name; }
public String getName(){ return name; }
}
public class BallArrayDemo {
public static void main(String[] args) {
Ball[] balls = new Ball[5];
for (int i = 0; i < 2; i++){
balls[i] = new Ball();
balls[i].setName((i+1)+"번 공");
}
System.out.println("배열의 원소들:");
for (Ball ball : balls){
if (ball != null){
System.out.println(ball.getName());
} else {
System.out.println("null");
}
}
}
}
- 열거타입 (enum)
import javax.smartcardio.Card;
enum CardType{
DEBIT, CREDIT, PREPAID
}
public class EnumExample {
public static void main(String[] args) {
CardType myCardType = CardType.DEBIT;
switch (myCardType){
case DEBIT:
System.out.println("직불 카드를 선택");
break;
case CREDIT:
System.out.println("신용 카드를 선택");
break;
case PREPAID:
System.out.println("선불 카드를 선택");
break;
default:
System.out.println("알 수 없는 카드 타입");
break;
}
}
}
3. 제어문의 종류
순차적인 흐름을 제어해야 하는 경우, 순차, 선택, 반복
조건문 if, if else, 삼항 연산자, switch
반복문 while, for, Enhanced for
기타제어문 : continue, break
public class DoWhileEx {
public static void main(String[] args) {
int i = 1, j = 1;
while (i < 1) {
System.out.println("while 루프 " + i + "번째 반복 ");
i++;
}
System.out.println("while 루프 종료 후 i값 : " + i + "입니다.");
do {
System.out.println("do while 루프 " + j + "번째 반복");
j++;
} while (j < 1);
System.out.println("do while 루프 종료 후 j값은 "+ j + "입니다.");
}
}
public class ForEx {
public static void main(String[] args) {
int i, sum =0;
for (i = 0; i<5; i++){
sum +=i;
System.out.println("for 루프 "+(i+1)+"번째 반복 실행 중");
}
System.out.println("for 루프 반복 종료 후 반복 횟수 : "+i);
System.out.println("누적 합계: " + sum);
int[] numbers = {1,2,3,4,5};
for (int num : numbers){
System.out.println("확장 for 루프에서 처리하는 값: "+num);
}
}
}
public class CtrlFlow {
public static void main(String[] args) {
int n = 1, s = 0;
while (true) {
s += n;
if (n == 100) {
break;
}
n++;
}
System.out.println("1부터 100까지의 합: " + s);
for (int i = 1; i<=100; i++){
if (!(i %5 ==0 && i % 7 == 0)){
continue;
}
System.out.println(i + "는 5와 7의 배수입니다.");
}
}
}
'KT AIVLE School > JAVA' 카테고리의 다른 글
예외, 컬렉션 (1) | 2024.11.29 |
---|---|
상속, 추상화, 제네릭 (0) | 2024.11.29 |
객체지향 (0) | 2024.11.28 |