영보의 SystemOut.log

[Java] Java / 데이터 타입 / 변수 종류 / 연산자의 종류 / 기본 API 클래스 or 인터페이스 / String 클래스의 사용 빈도수가 높은 메소드 본문

국비교육(아이티센 입사교육)/Java

[Java] Java / 데이터 타입 / 변수 종류 / 연산자의 종류 / 기본 API 클래스 or 인터페이스 / String 클래스의 사용 빈도수가 높은 메소드

영보로그 2021. 9. 27. 20:37
반응형
자바/스프링 기반 디지털 융합 웹 개발자 양성과정 1일차

 

 

Java 

 자바가 프로그래밍 언어임에도 단순한 언어의 차원을 넘어 자바 컴퓨팅(Java Computing)으로 까지 불려지고 있는 것은 막강한 API(Application Programming Interface)와 오픈소스 라이브러리가 있기 때문.

 # 이식성이 높은 언어

 # 객체지향 언어

 # 함수적 스타일(functional-style) 코딩을 지원 

 # 메모리 자동관리

 # 풍부한 기능을 제공하는 오픈 소스 – 자바 개발 키트(JDK)

 # 멀티 스레드(Multi-Thread)를 쉽게 구현

 

 

 

자바 개발 환경 구축

1. 자바 JDK 설치

 JDK(자바 개발 키트)는 자바 프로그램을 개발하는 필요한 라이브러리와 플랫폼이 포함되어 있다. 자바 프로그램을 만들기 위해서는 반드시 JDK가 있어야 한다. 자바 프로그램을 실행하기 위해서는 JRE(자바 실행 환경)가 필요하다. 

2. Eclipse 설치

 이클립스(Eclipse)는 통합 개발 환경(IDE)으로 자바 프로그래밍을 하는 데 꼭 필요하다.

   * c:\DEV 폴더 생성 후 ->  이클립스 압축 푼 eclipse 폴더를 DEV에 넣음

 

 

 

자바 버전 

# 자바5 (JDK 1.5) - 진화계 
 - 향상된 for문 제공 
 - 가변인자(Varargs) 사용 가능 
 - 제네릭(Generic) 타입 추가 
 
# 자바8 (JDK 1.8) - 혁명계 
 1.  인터페이스에 - 디폴트 메소드 
  → 정적 메소드 선언이 가능 
 2. 람다식(Lambda Expression) 지원

  → 즉 함수적-스타일(functional-style) 지원 
  → "함수적 프로그래밍"을 위해 람다식을 지원하면서 기존의 코드 패턴이 많이 달라졌다. 
 3. 스트림(Stream) 추가 
  → 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 
 반복자이다.

 

 

 

자바의 데이터 타입

1.  기본 타입 : 8개

 # 정수 타입 – byte(1), short(2), int(4), long(8)

 # 실수 타입 – float(4), double(8)

 # 문자 타입 – char(2byte, Unicode)

 # 논리 타입 – boolean(1byte, true 또는 false)

* 단, 기본 타입으로는 자바에서 문자열을 표현할 수 없다 String 클래스를 이용하여 문자열을 표시할 수 있다.

 

2. 참조 타입 : 1개 참조 타입은 한 가지이지만 용도는 4가지이다.

 # 배열 타입

 # 클래스 타입

 # 인터페이스 타입

 # 열거 타입

 

# 예제

package 변수와자료형;

public class CharEx {
	public static void main(String[] args) {
		char c1 = 'A';
		char c2 = 65;
		char c3 = '\u0041';
		
		char c4 = '가';
		char c5 = 44032;
		char c6 = '\uac00';
		
		int unicode = c1;
		
		System.out.println(c1);
		System.out.println(c2);
		System.out.println(c3);
		System.out.println(c4);
		System.out.println(c5);
		System.out.println(c6);
		
		System.out.println(unicode); 
		
	}
}

 

 

 

자바 변수의 종류와 특징

변수의 종류를 결정짓는 요소는 ‘변수의 선언된 위치’가 된다.

변수의 종류 선언위치 생성시기
클래스 변수 (공통 속성) 클래스 영역 클래스가 메모리에 올라갈 때
인스턴스 변수 (개별 속성) 인스턴스가 생성되었을 때
지역 변수 클래스 영역 이외의 영역 (메소드, 생성자, 블록 { } 내부) 변수 선언문이 수행되었을 때

- 클래스 변수 선언 방법은 인스턴스 변수 앞에 static을 붙이면 된다. 클래스 내에 Static 키워드로 선언된 변수

- 클래스 변수는 모든 인스턴스가 공통된 저장공간(변수)을 공유하게 된다.

- 클래스 변수는 인스턴스를 생성하지 않고도 언제라도 바로 사용 가능

- 그리고 public을 앞에 붙이면 프로그램 내에서 어디서나 접근할 수 있는 ‘전역 변수(global variable)'의 성격을 갖는다.

- 인스턴스마다 고유한 상태를 유지해야 하는 속성의 경우, 인스턴스 변수로 선언한다.

 

# 예제1 - Utils.java

package 금액에콤마넣기;

import java.util.*;

public class DecimalFormatEx {
	//입력 받은 금액에 천 단위마다 콤마 넣기 함수 구현
	public static void main(String[] args) {
		String amount;
		System.out.println("결제 금액을 입력하세요 >>>");
		Scanner in = new Scanner(System.in);
		long totalamount = in.nextLong();
		
		// 추가
		amount = Utils.toNumberFormat(totalamount);
		System.out.println("결제 금액 : " + amount);
	}
}

 

# 예제2 - DecimalFormatEx.java

package 금액에콤마넣기;

import java.util.*;

public class DecimalFormatEx {
	//입력 받은 금액에 천 단위마다 콤마 넣기 함수 구현
	public static void main(String[] args) {
		String amount;
		System.out.println("결제 금액을 입력하세요 >>>");
		Scanner in = new Scanner(System.in);
		long totalamount = in.nextLong();
		
		// 추가
		amount = Utils.toNumberFormat(totalamount);
		System.out.println("결제 금액 : " + amount);
	}
}

 

 

 

 

연산자의 종류와 우선순위

종류 연산자 연산 방향
단항 연산자 증감(++,--), (dataType)
산술(*, / , %)
산술(+, -)
쉬프트(<<, >>)
비교(<, >, <=, >=, instanceof)
비교(==, !=)
논리곱(&&)
논리합(||)
삼항 연산자 조건( ? : )
대입 연산자 대입(=, +=, -=, *=, /=, %=)

 

 

 

제어문

유형 제어문
조건문 if문, if-else문, 중첩 if문, switch문
반복문 for문, while문, do-while문
분기문 break문, continue문

 

 

 

기본 API 클래스 or 인터페이스

패키지 클래스 or 인터페이스들
java.lang 패키지 Object
System
String
StringBuffer
Wrapper(Byte, Short, Integer, Long, Character, Float, Double, Boolean)
java.util 패키지 List, Set, Map, Scanner, ArrayList, Vector, HashMap, Hashtable, Properties, Date, Calender, Random, Arrays, StringTokenizer
java.util.regex 패키지 Pattern, Matcher
Java.text 패키지 DecimalFormat, MessageFormat
java.util.stream 패키지 BaseStream, Stream, IntSream, LongStream. DoubleStream
java.time 패키지 LocalDate, LocalTime, LocalDateTime, ZonedDateTime, Instant
java.security 패키지 MessageDigest : getInstance(), update(), digest() 메소드
 - 패스워드 암호화

 * String vs StringBuffer 차이점 알아두기

 

 

 

String 클래스의 사용 빈도수가 높은 메소드

리턴 타입 메소드명(매개변수) 기능 (역할)
int compareTo(String anotherString) 문자열의 사전적 값을 비교하여 int값 리턴
boolean equals(Object anObject) 두 문자열을 비교하여 boolean값 리턴
char chatAt(int index) 특정 위치의 문자 리턴
String replaceAll(String regex, String replacement) 정규표현식과 대체 문자열과 알차하는, 문자의 모든 시퀀스와 대체되는 스트링 반환
String substring(int beginIndex) beginIndex 위치에서 끝까지 잘라낸 새로운 문자열 리턴
String substring(int beginIndex, int endIndex) beginIndex 위치에서 endIndex 전까지 잘라낸 새로운 문자열 리턴
int length() 총 문자의 수를 리턴
byte[] getBytes(String charsetName) 특정 문자셋으로 인코딩된 바이트 배열을 리턴
boolean matches(String regex) 정규표현식으로 글자의 포함여부를 체크
String replace(CharSequence target, CharSequence replacement) 리터럴 대상 시퀀스와 일치하는이 문자열의 각 하위 문자열을 지정된 리터럴 교체 시퀀스로 바꾼다.
String[] split(String regex) 입력 받은 정규표현식 또는 특정문자(문자열) 를 기준으로 문자열을 나누어(쪼개어) 배열 (Array)에 저장하여 리턴하는 메소드.
String format(String format, Object... args) 지정된 위치에 값을 대입해서 문자열을 만들어 내는 용도로 사용
int lastIndexOf(String str) 문자열에 지정한 문자가 마지막 몇 번째에 있는 문자인지 위치를 int로 반환
boolean contains(CharSequence s) 특정 문자열이 포함되어 있는지 확인하는 기능 을 한다. 특정 문자열이 포함되어 있다면 true 를 없다면 false를 반환한다

 

# substring 예제

package 변수와자료형;

// 	substring 활용하여 문자열 자르기
 

public class URLPath {
	// public url = "http://locallhost:8080/Model2_Board/login.do";

	public static void main(String[] args) {
		
	
	String str = "http://locallhost:8080/Model2_Board/login.do";
	String result = str.substring(str.length()-9, str.length());
	System.out.println(result);
	}
}

https://qh5944.tistory.com/169

 

[Java] lastIndexOf 와 substring 문자열 자르기

 lastIndexOf 와 substring lastIndexOf(String str) Returns the index within this string of the last occurrence of the specified substring. substring(int beginIndex) Returns a string that is a..

qh5944.tistory.com

 

 

 

 

참고 사이트


 

Overview (Java Platform SE 8 ) (oracle.com)

 

Java Platform SE 8

 

docs.oracle.com

 

반응형