본문 바로가기

자바16

[Java] java.lang 패키지 : StringBuilder, StringBuffer [StringBuilder와 StringBuffer]문자열에 대한 변경처리를 하기위한 클래스다.버퍼(문자열을 수정하기 위한 임시저장공간)에 기존 문자열을 저장해두고 수정하는 방식이다.버퍼의 크기는 최초 16이며, 생성자의 지정에 따라 크기를 지정할 수 있다. (버퍼 사이즈는 1글자 당 버퍼 크기 1)위의 클래스들로 작업할 때 최초 버퍼 크기가 맞지 않아 늘리는 작업이 필요한데, 이 작업은 자동으로 된다.버퍼의 크기는 실제 더 필요한 사이즈보다 2배정도 더 생성하는데, 불필요하게 크게 메모리에 할당되어 낭비될 수 있으므로 버퍼크기는 잘 예상하는 것이 좋다.두 클래스의 생성자, 메소드 형태, 기능이 거의 동일하다. [두 클래스의 차이점]멀티쓰레드 환경이냐 싱글쓰레드 환경이냐이다.다시말해 동시에 처리를 하는 .. 2017. 1. 20.
[Java] java.lang 패키지 : String [java.lang 패키지 클래스] : 자바의 기본 클래스 및 인터페이스 모음 패키지, 자동 import됨 [문자열 관련 클래스(String, StringBuffer, StringBuilder, StringTokenizer)] 1) String : 문자열을 데이터 타입(객체)로 선언하는 클래스이며, concat, replace 등 문자열을 조작하는 메소드를 멤버로 가지고 있다. => 문자열을 생성하는 방법은 객체 생성, 리터럴 2가지가 있음 => 리터럴로 생성하면 값이 같을 경우 같은 참조값을 갖기 때문에 == 으로 참조값을 비교했을 때 true를 반환함 [메소드] => concat : 기존 문자열에 다른 문자열을 붙일 때 사용하는 메소드 => replace : 문자열 중 일부를 변경할 때 사용하는 메소.. 2017. 1. 20.
[Java] 접근제어자 [접근제어자]접근제어자는 클래스 내부 멤버변수, 메소드에 대한 접근을 제어하기위한 명령어이며, 세가지로 나뉜다.1) public : 어디에서나 접근 가능함(인터페이스에서는 상수 - 변수 없이 상수로 선언됨, 메소드 모두 public으로 고정되어있음) 2) protected : 같은 패키지 내에서만 클래스 내부구성요소(변수, 메소드)는 사용할 수 있고 외부패키지에서는 사용안됨3) private : 해당 클래스 내부에서만 사용가능함(객체를 생성하더라도 멤버변수/메소드를 호출할 수 없음)생성자도 private을 설정할 수 있다. 왜 사용하냐고 하겠지만 생성자에서 다른 생성자를 호출해서 하나의 생성자로 모이게끔 코드를 구성할 때 최종 생성자만 private로 설정해놓는 것이다.(객체 생성시 사용자가 아닌 관리자.. 2017. 1. 20.
[Java] 패키지 클래스와 인터페이스 파일이 많아지면 그만큼 관리하기가 어렵고 번거롭기도하고, 중복되지 않게 이름붙이는 것도 어렵다. 이를 위해 각각의 기능 혹은 어떤 기준에 따라 패키지의 개념을 통해 나눠 클래스, 인터페이스 파일을 관리할 수 있다. 다시 설명하자면 하나의 프로젝트가 있고 프로젝트를 완성하기위해 각각의 기능을 구현해야할 것이다. 각각의 기능을 담당하는 클래스, 인터페이스 파일을 프로젝트 내에 있는 디폴트 패키지 폴더에 한 곳에 모두 모아 둘 것이 아니라 각각의 패키지를 생성한 뒤 거기에 맞게 클래스, 인터페이스 파일을 옮겨서 관리를 한다. 프로젝트 전체 폴더 내에 기능에 맞춰 새로운 폴더를 만들고 사용하는 것이다. 클래스 혹은 인터페이스 파일의 이름이 같다하더라도 패키지가 다르기때문에 각각 다르게 인식한.. 2017. 1. 20.
[Java] 레퍼런스타입 - 다형성/캐스트연산자/instanceof 지난 포스팅에서는 레퍼런스타입 특징에 대해서 알아보았다. 이번 포스팅에서는 레퍼런스타입 중 클래스와 인터페이스가 가지는 다형성에 대해서 알아볼 것이다. 우선 다형성이 대다수 사람들이 하는 정의들을 알아보았다 다형성 : 여러가지 형태를 가질 수 있는 능력 으로 다들 정의를 해놓았더라 찾아본 정의를 토대로 코드들을 살펴본 결과 내가 내린 정의는 이러하다(좀 길다.....) 다형성 : 상속받은 클래스(자식) 혹은 인터페이스 구현된 클래스가 있고, 상속을 해준(부모) 클래스 혹은 인터페이스가 있다. 부모 클래스 혹은 인터페이스를 객체 변수타입으로 두고 자식클래스, 인터페이스 구현된 클래스의 객체를 담을 수 있다. 다형성을 사용한다면 부모 클래스, 인터페이스를 인자로 두고 실제로는 자식, 인터페이스를 구현한 클래.. 2017. 1. 16.
[Java] 레퍼런스타입 자바의 변수형은 프리미티브 타입과 레퍼런스 타입으로 나뉜다. - 프리미티브타입 : short, int, long, char, boolean, float, double / 값을 변수에 대입하여 사용하는 형태- 레퍼런스타입 : 클래스, 인터페이스, 배열, 열거형 / 값을 변수에 대입하지만 변수는 참조값(메모리상)을 가지고있지 값(프리미티브타입 값들로 이루어진)을 직접 들고있지는 않는 것이 특징이다. 레퍼런스타입의 특징을 예시로 살펴보면 다음과 같다. 1) 왼쪽의 코드 결과는 오른쪽과 같다.2) str1의 값이 참조값에 저장된다. 3) str2의 변수에 str1의 참조값을 대입한다.4) sysout을 통해 결과값을 보면 true로 나온다. 프리미티브타입에 비춰서 생각해보면 str1의 문자열을 str2에 대입했.. 2017. 1. 16.