본문 바로가기

JAVA/JAVA 기초

(16)
값 전달 방법(callByValue callByReference)과 불변객체 기본형과 참조형 기본형의 값 전달방법 public class CallByValueSample {public static void main(String[] args) {int value =1;callByValue(value);System.out.println("호출자" + value);}public void callByValue(int value) {vaule++;System.out.println("수신자" + value);}} 수신자:2호출자:1 기본형의 값을 전달하는 경우는 수신자에서 값을 변경해도 호출자에 영향을 주지 못한다. 참조형값 전달 방법 public class Entiry {public int value;} public class CallByReferenceSample {public stat..
문자열관련 문자열 String 클래스String은 문자열의 정보를 내부에서 char타입의 배열로 유지하고 있다.char는 단일문자를 보관하는 타입인데, String은 char를 배열로 유지함으로써 여러문자을 모아서 처리할 수 있다. String 객체는 한번 만들면 변경할 수 없다.String originalText = "ABC";String lowerText = originalText.toLowerCase(); String 클래스는 어떠한 가공메서드를 호출해도 원래 문자열은 변경되지 않는다.불변객체(Immutable) 문자열 합치기 1.StringBuilder 클래스가변 문자열을 유지하는 클래스로 문자열의 결합이나 삭제 등을 반복할때 사용.StringBuilder bulider = new StringBuilder(..
예외 관련 예외 1. 검사예외(Exception)주로 프로그램 작성시 에 예상할 수 있는 비정상 상태를 통지하기 위해서 사용한다.파일에서 데이터 입출력하는 처리에서 파일을 읽고 쓸수 없는 경우 IOException 예외발생검사예외를 사용하면 예상되는 비정상 상태에 대응하는 처리가 있는지 컴파일 시 체크한다.포착(catch)해서 처리하거나 상위 호출원에 대해 예외를 발생시키는(throw)것이 필수이며 하지 않을 경우 컴파일 오류가 발생한다. 2.실행시예외(RuntimeException)주로 프로그램 작성시에 예상할수 없는 오류를 통지하기 위해서 사용한다.포착하지 않아도 컴파일 오류가 발생하지 않는다.포작하지 않을 경우 무조건 호출원에서 발생하게 된다.Integer클래스의 parsInt 메서드를 호출할때 정수로 변환할..
자바 컬렉션관련 배열의 한계복수의 데이터를 취급하기 위해 배열을 사용했다.그러나 배열은 길이가 결정되어 있기 때문에 요소의 추가나 삭제가 어려운 문제가 있다.그래서 자바에서는 복수의 데이터를 좀 더 다루기 쉬운 구조로 '컬렉션'을 준비했다.컬렉션과 반복자, 그리고 컬렉션을 다루기 위한 유틸리티 등의 집합을 컬렉션 프레임워크라 부른다. 컬렉션은 배열과 달리 처음부터 크기의 제한을 결정할 필요가 없기 원하는 만큼의 데이터를 저장할 수 있다. 또한 컬렉션 프레임워크는 많은 인터페이스와 구현이 준비되어 있어, 각각 다른 알고리즘으로 데이터를 관리한다.배열처럼 여러 데이터를 처리할 수 있는 List 인터페이스와 키와 값을 나누어 데이터를 유지하는 Map 인터페이스 등이 있다. 대표적인 컬렉션배열 - 복수의 요소를 취급하는 매커니..
자바 배열관련 배열동일 타입의 값을 여러개 취급할 수 있는 기능 int[] array = new int[10];array[0] = 1;array[1] = 1;array[2] = 2;array[3] = 3; 배열 초기화int[] array1 = new int[10]; //크기지정int[] array2 = {1,2,3,4,5}; //초기값 지정int[] array3 = new int[] {6,7,8,9,10}; //초기값과 타입을 지정 int[] array4; array4 = new int[]{1,2,3,4,5}; //값을 지정하여 대입array4 = {1,2,3,4,5}; //이것은 컴파일 에러 배열을 인수로 하는 경우 log("사용자를 등록하였습니다.", new String[] {"userName", "Ken"});l..
자바 타입관련 instanceof 연산자변수의 타입과 완전히 일치하는 클래스만이 아니라 그 타입을 상속한 서브 클래스도 변수에 대입할 수 있다.Object로 정의한 경우 그 변수에 String이든 Integer이든 대입할수 있다.변수에 대입된 객체의 타입이 실제로 무엇인지를 판정하는 방법으로 instancof 연사자를 사용 package com.eeswk.domain; public interface BaseService {public String say();} package com.eeswk.domain; public abstract class AbstractBaseService implements BaseService {protected String name;public AbstractBaseService(Strin..
자바 기본형 참조형 클래스 관련 기본형숫자값을 취급하는 리터렐에서는 언더스코어를 사용하여 구분표기를 할수 있다.(자바7이후)@Testpublic void longConvertTest() {long amount = 123_456_789L;System.out.println(amount);} 확장변환(widening conversion) / 축소변환(narrowing conversion)자바는 타입이 서로 일치하지 않는 경우에도 타입끼리 서로 호환성이 있으면 자동적으로 변환short타입은 16비트의 정수 int 32bit 정수short shortNum = 100;int intNum = shortNum; //확장(short -> int) int 타입의 값을 short 타입의 값으로 취급경우 short타입으로 나타낼수 있는 값의 범위를 넘을 경..
자바 기초 작성법 생성자 인스턴스를 생성하는 시점에 설정을 읽어들이거나 필드를 초기화하는 등 여러가지 처리를 하는 경우 '생성자'를 선언한다.생성자는 인스턴스를 생성할 때 호출되는 처리다. package com.eeswk.domain; public class Student {String name;int score;static final int MAX_SCORE = 100;public Student(String name, int score) {this.name = name;this.score = score;}public Student(String name) {this(name, 0);}void printScore() {System.out.println(this.name + "의 점수는 " + this.score +"점 ("..