java.lang.String 클래스

문자열을 사용할 때 주로 사용하는 클래스입니다.

 

 

String Class의 선언 방법

참고

 본래는 클래스를 불러오는 것이기 때문에 인스턴스를 생성하여 불러와야 하지만,

 ex) String str1 = new String("Hello");

 String str1 = "Hello"; 와 같이 선언을 하는 것이 가능하다! (자주 사용하기 때문에)

 

예시

import java.util.*;

public class MainClass {
	public static void main(String[] args) {
    
		String str;
		str = "Hello";
		System.out.println(str);
        
		String str1 = new String("Hello"); // == String str1 = "Hello";
		str1 = "hi";
		String str2 = "반갑습니다";
		System.out.println(str1);
 

 

실행화면

Hello
hi

 

 

 

concat : 문자열 연결

참고

 concat이란 메서드가 있긴 하지만 + 만으로도 연결이 가능하기에 잘 사용하지 않습니다.

 

예시

		String str3 = str.concat(str2);
		System.out.println(str3);
		String str4 = str+str2;
		System.out.println(str4);

 

실행화면

Hello반갑습니다
Hello반갑습니다

 

 

 

equals : 비교

참고

 ==으로 비교시는 false이기 때문에  "다른 문자열입니다"란 문구가 실행될 것입니다.

 이는 ==은 초창기 값으로 비교를 하기 때문입니다.

 그래서 문자열 비교시 equals를 사용합니다.

 

예시

		String str4 = "world";
		String str5 = "worl";
		
		str5 = str5 + "d";
		
		// if(str4 == str5) { // == 초창기 값으로 비교
		if(str4.equals(str5) == true) { // == true 생략가능
			System.out.println("같은 문자열입니다");
		}else {
			System.out.println("다른 문자열입니다");
		}

 

 

 

indexOf, lastIndexOf : 문자의 위치 탐색

참고

 indexOf : 앞부분의 해당 문자열 위치를 탐색

 lastIndexOf : 뒷부분의 해당 문자열 위치를 탐색

 

예시

		String str6 = "abcdabcdabcd";
		//	       01234
		int index = str6.indexOf('c');
		System.out.println("index : "+ index);
		
		int lastIndex = str6.lastIndexOf('c');
		System.out.println("lastIndex : "+ lastIndex);

실행화면

index : 2
lastIndex : 10

 

 

 

length() : 문자열의 길이

 

예시

		int len = str6.length();
		System.out.println("length : "+ len);

 

 

 

replace : 수정

 

예시

		String str7 = "A*B*C*D";
		String rep = str7.replace("*", "-");
		System.out.println("replace : "+ rep);

 

실행화면

replace : A-B-C-D

 

 

 

split : 문자열을 원하는 구분자(token)로 분리

참고

 지정한 구분자로 문자열을 나눠 배열에 저장합니다.(공백 문자열 포함)

 

예시

		/*
			aaaa-bbb-cc		'-' == token(여러가지가 있는데 안되는 것도 있다.)
			aaaa
			bbb
			cc
			1001-홍길동-24-서울시
			1001
			홍길동
			24
			서울시
		*/
		String str8 = "1001-홍길동-24-서울시";
		
		String split[] = str8.split("-");
		System.out.println(split.length);
        
		// 배열 내용 출력 메소드 Arrays.toString(배열명)
		// import 필수! (import java.util.Arrays)
		System.out.println(Arrays.toString(split));
		
		// foreach문 사용
		for ( String s : split) {
			System.out.println(s);
		}
		

 

실행화면

4
[1001, 홍길동, 24, 서울시]
1001
홍길동
24
서울시

 

 

 

substring : 문자열 잘라내기

참고

 사용시 주의할 사항은 str9.substring(0, 4) 일 경우 잘라내어 지는 문자열은 (index, index-1)이라는 점을 숙지하여야 한다.

 

예시

		String str9 = "abcdefghij";
		String str10 = str9.substring(0, 4); // 0 ~ 3
		System.out.println("str10 : "+ str10);
		
		str10 = str9.substring(5); // 5 ~ 끝까지
		System.out.println("str10 : "+ str10);

 

실행화면

str10 : abcd
str10 : fghij

 

 

 

toUpperCase : 대문자로 변환 , toLowerCase : 소문자로 변환

 

예시

		String str11 = "abcDEF";
		System.out.println(str11.toUpperCase()); // 대문자
		System.out.println(str11.toLowerCase()); // 소문자

 

실행화면

ABCDEF
abcdef

 

 

 

trim : 문자열의 앞뒤공백을 삭제

 

예시

		String str12 = " java  java        java   ";
		System.out.println(str12.trim());

 

실행화면

java  java        java

 

 

 

charAt : index를 입력하면 그 위치에 문자를 돌려주는 함수

참고

 문자열인지 숫자인지 확인할 경우 많이 사용되는 메서드이다.

 

예시

		String str13 = "가나다라마바사";
		char c = str13.charAt(3);
		System.out.println("c = "+ c);

 

실행화면

c = 라

 

 

 

contains - 문자열 탐색(있느냐? 없느냐?)

 

예시

		String str14 = "서울시 마포구 서교동";
		
		boolean b = str14.contains("마포");
		System.out.println(b);
	}
}

 

실행화면

true

'IT > Java' 카테고리의 다른 글

[자바] File Class  (0) 2021.05.16
[자바] Calendar Class  (0) 2021.05.13
[자바] Java 예약어(keyword, reserved word)  (0) 2021.04.24
[자바] beginning  (2) 2021.04.23
[자바] MultiThread  (0) 2021.04.22

예약어란?

프로그래밍 언어의 구문에 사용되는 단어

클래스나 변수, 메서드의 이름(식별자)으로 사용할 수 없다.

 

Java 예약어(나만의 방식...)

 

byte, short, char, int, long, float, double, (boolean -true, false) : 기본형 데이터 타입 

 

String : 참조형 데이터 타입, 문자열

 

if, else if, else, switch, case, for, while, do, break, return, continue : 제어문 

 

pubilc, protected, defalut, private : 접근제한자 

 

throw, throws, try, catch, finally : 예외처리

 

void : 리턴할 것이 없다 

 

static : class 소속 지정

 

class : class명 앞에

 

import : 불러오다 

 

package : 패키지

 

abstract : 추상메소드 & 추상 클래스 사용

 

super : 부모 소환

 

this : 자기 자신

 

implements : Runnable 불러올 때

 

null : String 초기값

 

final : 상수 

 

extends : 상속 

 

new : 인스턴스 생성

 

synchronized : 동기화

 

 

'IT > Java' 카테고리의 다른 글

[자바] Calendar Class  (0) 2021.05.13
[자바] String Class  (0) 2021.05.11
[자바] beginning  (2) 2021.04.23
[자바] MultiThread  (0) 2021.04.22
[자바] 은닉화/캡슐화  (0) 2021.04.21

(1) JVM

    1) JDK = jdk + jre
    2) 환경변수 : 고급시스템 설정 → 환경변수
   <1> JAVA_HOME

       새로만들기 → 변수이름 : JAVA_HOME

                                       변수 값 : java 경로 ex) C:\Program Files\Java\jdk1.8.0_281   
   <2> Path

       편집 새로만들기 %JAVA_HOME%\bin
   <3> classpath

       새로만들기   변수이름 : classpath 

                                        변수 값 : .


    3) API

   다운 후  does  api  index.html

   
(2) 실행 메커니즘

    1) 작성(java) -> 컴파일(javac.exe)  -> 실행(java.exe)

    2) .java(for Man) -> .class(for Com)

 

(3) 클래스의 구조

    1) 패키지 선언     

       ex) pakcage 디렉토리명 ;
    2) 임포트 구문     

       ex) import java.io.*;
    3) 클래스 선언 {   

       ex) class 클래스명{
   (4) 멤버변수   

       ex) int i; (멤버변수는 초기화가 됨.)
   (5) 생성자    

       ex) 클래스명( ) { } (defalut 생성자는 파라미터 생성자가 없을때 자동으로 생성된다.)
   (6) 메소드      

       ex) void m( ) {구문..}
       }

 

(4) 객체 지향 용어

    1) 클래스 : 객체를 정의하는 붕어빵 틀, 설계도
    2) 객체    : 인스턴스
    3) 생성자(Constructor) : 인스턴스 변수(필드 값 등)를 초기화 시키는 역할
    4) 메소드(Method) : 어떠한 특정 작업을 수행하기 위한 명령문의 집합
    5) 속성 : 데이터타입의 정의(?)
   

 (5) 변수(Variable)

    1) 유효범위
      <1> 멤버(전역)
    1> 클래스
    2> 객체
      <2> 지역
    1> 선언초기화
    2> 파라미터
    2) static
       <1> 클래스
       <2> 객체
    3) final
       <1> 변수
       <2> 상수
    4) 메모리
       <1> 기본형 8개
       <2> 참조형 (레퍼런스)


(6) 제어

     '실행의 흐름

      JVM -> main( ) -> ...main( ) -> JVM

 


(7) 제어문

     1) 조건문
        - if
        - switch

     2) 반복문
        - for(초기값;조건식;증감식)
        - while ( )
        - do{ }while( )


(8) 제어 : 예약어

     1) break : 해당 바디를 나간다  (반복문, switch)
     2) continue : 건너뛰어서 증감식으로 간다 (반복문)
     3) return : 자기를 호출했던 곳으로 되돌린다


(9) 배열(Array)

     데이터의 '저장소' 객체

     1) 선언
        ex) int is[ ];
     2) 생성
        ex) new int[갯수];
     3) 초기화
        ex) 방에 저장되는 첫 번째 값


(10) 컬렉션(collection) 계열 ( ==  자료구조 == 가변배열 )

      참조형 데이터를 저장하는 '저장소' 객체 

     1) 종류
       <1> Collection
              |      |
            List    Set
       <2> Map
     2) 특징
       <1> List
          - 순서 보존
          - 중복 허용
       <2> Set
          - 순서 보존 X
          - 중복 허용 X
       <3> Map
          - key와 value 쌍
          - key중복 X, value 중복 O
          - 순서 보존 X


(11) OOP(OOP, Object-Oriented Programming) 특성

     1) 상속성 - 강제형 변환(제자리로 돌아갈 때- 자식이 쌔니까)
     2) 다형성 - 오버라이딩(메소드 재정의, 생성자 X)으로 한 객체가 여러 가지 일을 할 수 있다. 
     3) 은닉성 - 멤버 변수값(속성 값, 데이터)을 감추는 것
     4) 캡슐화 - 내용을 몰라도 형태만 알면 가져다 쓸 수 있는 것


(12) (메소드) 오버라이딩

     부모 메소드를 자식에서 바꾸는 것

     1) 부모의 접근제한자 보다 자식의 접근 제한자가 같거나 넓어야 한다.
     2) 메소드 만
     3) 반환 타입도 같아야 한다.
     4) 파라미터도 종류 순서 모두 같아야 한다.


(13) 제한자

     1) 접근
        public > protected > default > private
     2) 소유
        static
     3) 수정
        final
     4) 추상
        abstract

        ex)  interface Runnable
              {
              public  abstract void run();
           }


(14) 예외 (Exception)

      정상적으로 동작하지 못하게 하는 '돌발상황'

      1) 목적
         '돌발상황' -> '정상적으로 작동'
      2) 계층도
         <1> CompileException( CheckedException)
         <2> RuntimeException
      3) 방법
         <1> 적극
              try {
              } catch(Exception e) { }
         <2> 소극
              throws Exception
      4) try 절에 2개 이상의 예외 발생
         <1> 상속 O
              자식 예외부터 catch절
         <2> 상속 X
              catch절 순서 X
      5) 2개 이상의 예외를 떠넘길 때
         throws AException, BException,...
      6) finally절
         <1> 항상 수행
         <2> try절 나오면...
              catch 절이나 finally 절이나...
              둘 다 나오거나 해야 함
         <3> return 만나도 finally는 수행하고 return 함
         <4> 얘는 못 이김

                   System.exit(정수);

 

 

(15) 쓰레드(Thread)

프로세스를 구성하는 '제어의 흐름'

      1) Process / Thread 
         - Process : 실행의 단위 (실행되는 있는 프로그램)
         - Thread  : Process를 구성하는 작업 단위
      2) 생성
         - java.lang.Thread 상속법

         - java.lang.Runnable 상속법

      3) 시작
         th.start();

      4) 비유 : '피고용인'
      5) LifeCycle
         - 5가지
         - '메소드', '스케쥴러', '시간'
      6) Priority
         - 우선순위 th.setPriority(10);
         - 1 ~ 10
         - MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
      7) 동기화
         - 멀티쓰레드에서 무결성을 보장하기 위해서
         - 비유: '화장실의 문고리'
         - schronized
         - 방법
           schronized void m( ) { }
   
           void m( ){
            로직 1
           schronized (this) {
             로직 2
            }
           }

'IT > Java' 카테고리의 다른 글

[자바] String Class  (0) 2021.05.11
[자바] Java 예약어(keyword, reserved word)  (0) 2021.04.24
[자바] MultiThread  (0) 2021.04.22
[자바] 은닉화/캡슐화  (0) 2021.04.21
[자바] 다형성  (0) 2021.04.21

Thread란?

 Process를 구성하는 '작업 단위'

MultiThread란?

 하나의 Process 내에서 여러 Thread가 동시에 작업을 수행하는 것

 

 

1) Thread class를 상속

 

예시

public class MultiThread extends Thread{
	MultiThread() {
		start();
	}
	void main1() {
		while(true) {
			try {
			Thread.sleep(1000);
			}catch(InterruptedException ie){}
			System.out.println("main");
			}
		}
	public void run() {
		while(true) {
			try {
			Thread.sleep(1000);
			}catch(InterruptedException ie){}
			System.out.println("Thread");
			}
		}
	public static void main(String[] args) {
		MultiThread mt = new MultiThread();
		mt.main1();
	}
}

 

 

2) Runnable인터페이스를 구현

 

예시

public class MultiThread2 implements Runnable{
	MultiThread2(){
		new Thread(this).start();
	}
	public void run() {
		while(true) {
			try {
				Thread.sleep(1000);
			}catch(InterruptedException ie) {}
			System.out.println("Thread");
		}
	}
	void main1() {
		while(true) {
			try {
				Thread.sleep(1000);
			}catch(InterruptedException ie) {}
			System.out.println("main");
		}
	}
	public static void main(String[] args) {
		MultiThread2 mt = new MultiThread2();
		mt.main1();
	}
}

 

참고

 *. start(); : 실행 시작

 

실행화면

main
Thread
Thread
main
Thread
main
main
Thread

두 소스를 실행화면 비슷하다.
실행 순서는 개발자가 알 수가 없다.

 

 

 

'IT > Java' 카테고리의 다른 글

[자바] String Class  (0) 2021.05.11
[자바] Java 예약어(keyword, reserved word)  (0) 2021.04.24
[자바] beginning  (2) 2021.04.23
[자바] 은닉화/캡슐화  (0) 2021.04.21
[자바] 다형성  (0) 2021.04.21

은닉화(Information Hiding)란 ?

정의

 외부 객체로부터 '속성 값(데이터, 멤버 변수값)'을 감추는 특성

 

조건

 접근제어자 private로 감춘다. (private - class내에서만 접근가능)

 

private를 사용하는 이유 ?

 외부로부터 데이터를 보호(캡슐화)하기 위해서
 인스턴스 변수는 private로 하여 외부에서 접근하지 못하도록 하고, 메서드는 public으로 하여 직접 접근은 막고 메서드를 통한 간접 접근 허용

 외부에는 불필요한, 내부적으로만 사용되는 , 부분을 감추기 위해서

 

접근 방법

 setter : 수정한다. 

 getter : 읽는다.

 

캡슐화(Encapsulation)란 ?

정의 

 객체가 은닉화 된 상태에서 메소드나 생성자의 일의 내용을 알 필요 없이, 그 형태(메서드 이름/파라미터/리턴 타입)만 알면 호출해서 사용할 수 있는 특성

 

예시

public class Hiding {
	private String add = "123456-2345678";
	private int balance = 2000;
	
	void setAdd(String add) {
		this.add = add;
	}
	String getAdd() {
		return add;
	}
	void setBalance(int balance) {
		this.balance = balance;
	}
	int getBalance() {
		return balance;
	}
	public static void main(String[] args) {
		Hiding h = new Hiding();

		h.setAdd("123456-1234123");
		System.out.println(h.getAdd());
		h.setBalance(40000);
		System.out.println(h.getBalance());
	}
}

 

실행화면

123456-1234123
40000

 

 

 

'IT > Java' 카테고리의 다른 글

[자바] String Class  (0) 2021.05.11
[자바] Java 예약어(keyword, reserved word)  (0) 2021.04.24
[자바] beginning  (2) 2021.04.23
[자바] MultiThread  (0) 2021.04.22
[자바] 다형성  (0) 2021.04.21

다형성(Polymorphism )이란 ?

정의

 '같은 타입'의 객체의 '같은 메소드'가 다른 일을 하는 특성

 객체를 부품 화하여 유지 보수를 용이하다.

 

조건

 상속, Overriding, 형 변환

 

예시

public class Pp {
	void see(){
		System.out.println("무엇을 본다");
	}
}
class CHee1 extends Pp {
	void see(){
		System.out.println("유튜브를 본다");
	}
}
class CHee2 extends Pp {
	void see(){
		System.out.println("TV를 본다");
	}
}
class CHee3 extends Pp {
	void see(){
		System.out.println("영화를 본다");
	}
}
public class Pp1 {
	public static void main(String[] args) {
		Pp a = new Pp();
		Pp b = new CHee1();
		Pp c = new CHee2();
		Pp d = new CHee3();
		a.see();
		b.see();
		c.see();
		d.see();
	}
}

 

실행화면

무엇을 본다
유튜브를 본다
TV를 본다
영화를 본다

 

 

'IT > Java' 카테고리의 다른 글

[자바] String Class  (0) 2021.05.11
[자바] Java 예약어(keyword, reserved word)  (0) 2021.04.24
[자바] beginning  (2) 2021.04.23
[자바] MultiThread  (0) 2021.04.22
[자바] 은닉화/캡슐화  (0) 2021.04.21

+ Recent posts