본문 바로가기



프로그래밍/JAVA

[JAVA] 리터럴 상수중 String의 특징(equals사용) String 문자열 리터럴의 특성 - String 리터럴 상수는 다른 상수와 달리 참조타입의 클래스에 속해있는 구조를 가지고있어서 객체를 다룰때와 같은 용법을 사용해야 합니다. 이는 기본타입의 데이터형과는 달리 직접적인 연산 비교식(==, -등)을 사용할 수 없다는 것으로 보면 됩니다. public class StringHeapNewString { public static void main(String[] args) { String a = "A"; String b = new String("A"); String c = "A" ; boolean same_Object = a.equals(b); if(same_Object) { System.out.println("a와 b객체 내용이 같습니다."); } else .. 더보기
[JAVA] 리터럴literal (상수)에 대하여 리터럴 literal은 코드내에서 직접 입력된 값을 일컫는 용어로, 각각 정수형(문자형포함), 실수형, 논리형과 문자열이 있습니다. 정수형은 흔히 말하는 정수로 세부적으로 10진수형, 0으로 시작하는 8진수형(01,-05), 0x이나 A~F로 시작하는 16진수형이 있습니다. 이 정수형은 다시 앞에서 이야기한 데이터 타입중에 정수타입에 해당하는 5개의 타입으로 분류 됩니다. 재미있는 점은 char의 경우 보기에는 문자 종류이지만 데이터 형으로는 정수타입 입니다. 실제 처리는 내부의 문자코드로 이루어 집니다. 이 텍스트처리에 관한 특이한 점은 백엔드보다는 프론트엔드에서 더 잘나타나는데, 문자가 깨질경우 유니코드로 지정해서 텍스트가 아닌 텍스트에 할당된 유니코드를 부여해서 저장하면 파일자체의 문자셋(옛날에는 .. 더보기
[JAVA] JAVA기초 #1 데이터 타입 분류 자바에서는 크게 원시타입 primitive type, 참조타입 reference tyep으로 먼저 분류된다. 기본 타입은 정수(byte,char,shor,int(eger),long), 실수(float, double), 논리(boolean) 타입으로 이루어져 있으며, 참조 타입은 배열타입, 열거 타입, 클래스, 인터페이스로 이루어져 있다. 기본 타입과 참조타입의 차이점은 기본타입은 그 값을 '실제로' 변수에 저장되어 활용된다. 백문이불여일견이라고 실제로 코드를 작성해서 출력해면 확실하게 이해 될것이다. public class CallReferenceType { public static void main(String[] args) { //기본 타입중, 정수타입에 int 변수를 선언 int new_primit.. 더보기
[JAVA] FileWriter 와 OutputStreamWriter차이점 FileWriter에 UTF8형식을 사용할려고 했더니 OutputStreamWriter을 사용하여, 변형하는 방법만 있었는데, 실제로 도입해보니 차이점이 있었다. FileWriter를 사용하여 파일을 기록하면 3번 도는 for문을 사용했을시에 1번,2번,3번 내용이 고스란히 디스크의 파일에 차곡차곡 Stack으로 쌓여 있지만, BufferedWriter와 OutputStreamWriter, FileOutputStream을 조합한 경우에는 최종값만 파일에 저장되게 된다. BufferedWriter output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), "UTF8")); output.write(text4); outp.. 더보기
[JAVA] serverSocket 실습 쉽게 하는 방법. 이클립스를 사용하면 serverSocket 실습시에 자꾸 콘솔이 현재 해당 실행 클래스가 메인으로 전환되기 때문에 서버쪽 정보를 바로 보기가 어렵다. 따라서 이경우는 커맨드 프롬프트나 파워쉘을 띄워서 서버쪽이 메시지를 매번 받는지 확인해보는것이 좋다. 작업표시줄 ->시작 버튼 -> windows 시스템- >명령 프롬프트를 눌러 실행한다 java를 입력했을때 실행되는지 확인한다. 실행되지않는다면 자바 환경변수를 검색해서 설정해준다. 이후에 현재 작업파일이 있는 위치를 확인한다. 이클립스에서 해당 클래스파일에 마우스 오른쪽을 누르면 Properties가 있는데 이것을 누르면 location에 해당경로가 나온다. 이것을 마우스로 끌어서 복사 한 다음 위의 프롬프트창에 cd 한칸 띄고 붙여넣기를하고(윈도우10만.. 더보기
[JAVA] Type mismatch: cannot convert from java.io.InputStream to org.omg.CORBA.portable.InputStream socket.getInputStream(); import java.io.InputStream; 을 import해야한다. org.omg.CORBA 패키지에 있는 항목들을 import하면 안된다. java.io.InputStream패키지를 import한다. 더보기
[JAVA] java.io.InvalidClassException (serialVersion UID) 직렬화 된 객체를 역직렬화 할때 클래스 내용이 변경되면 역직렬화가 실패하기 때문에 (한개 이상의 필드를 더 선언하게 될경우), 일반적으로 serialVer.exe를 사용하여 UID를 생성하여 publci class someOfclassName implemtns Serializable { static final long serialVersionUID = ????????????????????????L; } ... } 위와 같은 코드를 작성하게 되는데 실행시에 Exception in thread "main" java.io.InvalidClassException: 패키지명.클래스명; local class incompatible 에러가 발생하는 경우가 있다. 이 경우는 다른 패키지파일에 동일한 UID가 있을경우이.. 더보기
[JAVA] The constructor BufferedInputStream(FileInputStream) is undefined new BufferedInputStream(input_si_pm_kicked); The constructor BufferedInputStream(FileInputStream) is undefined BufferedInputStream 을 이용하여 파일입력을 받을려 고 하는데 ctrl+shift+o를 해도 import 되지 않고, 임의로 import를 작성해도 에러가 발생되어 곰곰히 찾아보니 해당 클래스 파일의 이름이 또, object이름과 같게해서 일어난 문제였다. IDE에서 패키지명, 클래스명과 동일한 클래스파일 작성시 경고를 내보내면 좋겠는데. 지금까지 딱 두번 이런문제로 시간을 소모한게 안타깝다. 아래 메시지가 현재 상황에서 import를 수동으로 입력하면 나타나는 메시지이다. 한마디로 셋트로 에러.. 더보기