접근제어자는 4가지가 있다. default public protected private 1. default 필드나 메서드에 접근제어자를 지정해주지 않는 경우 내부적으로 default 접근제어자를 지정해준다. default 접근제어자로 지정된 필드, 메서드는 해당 패키지 내에서 자유롭게 접근이 가능하다. 2. public 어감 그대로 어디서든 자유롭게 접근할 수 있다. 3. protected 해당 패키지와 해당 클래스를 상속받은 다른 패키지 내 클래스에서도 접근할 수 있다. 4. private 해당 클래스를 제외하고는 어디서도 접근할 수 없다. 아래 그림과 함께 보면 이해가 조금 더 쉬울 수 있다. 이제 의문이 들기 시작한다. 왜 코드를 다른 곳에서 못쓰게 막아야 할까? 이 의문에 대한 내 생각을 간단하게..
java
Java로 프로그래밍하는 경우 IDE의 선택지가 좀 있는 편인데 저는 Eclipse를 사용합니다. 사람들은 그 무거운 거 왜 쓰냐 차라리 IntelliJ 쓰지 라고 하는데 회사에서도 이걸로 개발 읍읍 적응되고 단축키도 알아가니 생각보다 좋습니다. 무튼 Eclipse 시리즈의 첫 글로 디버깅에 대해 이야기를 해보고자 합니다. 학부 때 학교에서 잘 안 알려주는 것 중 하나가 디버깅입니다. 맨날 디버깅하라고 하는데 알려주지는 않더라고요. 그래서 정말 간단한 정도로만 여기에 사용법 정도로 올릴테니 반드시 읽어주셨으면 좋겠습니다. 근데 디버깅이 뭔지 모를 수 있어요. 저도 정의는 잘 몰라요.. 꺼무.. 아니 나무위키에서 설명된 글을 옮겨봤습니다. 디버그(Debug)는 프로그래밍 과정 중에 발생하는 오류나 비정상적..
GC관련 혹은 JVM 관련해서 살펴볼 때 -XX:+~~~ 와 같은 문장을 본 적이 있을 것이다. 이게 도대체 뭔지 궁금해서 검색을 해보았더니 JAVA Hotspot VM에서 사용하는 Option설정 예약어였다. 아래 내용은 오라클에서 제공하는 Hotspot VM의 vmoptions 페이지에서 일부를 옮겨와 번역하였다. -XX란? 원문 - Options that begin with -X are non-standard (not guaranteed to be supported on all VM implementations), and are subject to change without notice in subsequent releases of the JDK. - Options that are specified..
이 글을 쓰면서 너무 중구난방 한 글을 작성하지 않나 하는 생각이 머릿속을 계속 접근하고 있습니다.. class 파일의 내부 정의 키워드를 넣지 않는 등 일부 당장 필요가 없다고 판단되는 부분들을 임의로 삭제한다고 삭제하였는데 과연 좋은 판단이었는지에 대해서는 더 생각해보고 이 글을 수정하겠습니다. 0. 들어가며 JVM은 Java Virtual Machine의 약자이다. Virtual Machine이라는 단어에 주목해야한다. VM이라는 건 프로그램을 실행하기 위해 물리적 머신(즉, 컴퓨터)과 유사한 머신을 소프트웨어로 구현한 것을 말한다고 할 수 있다. 요즈음에 와서는 JAVA의 목적성에서 변색된 개념(왜 변색되었다고 말하는지는 추후 조사하여 작성하도록 하겠다..)이긴 하지만 자바는 원래 WORA(Wri..
org.eclipse.ui.internal.console.IOConsolePartitioner 자바로 GUI프로그램(SWT, JFace, RCP)을 만들 때 IOConsole을 붙여 사용하는 경우가 있는데 해당 버퍼사이즈가 초과되면 OOM(Out Of Memory)가 나타난다. 이를 설정하기 위해 해당 클래스에는 setWaterMarks라는 함수가 있다. 해당 함수의 javadoc과 함수 형태는 다음과 같다. /** * Sets the text buffer size for this console. The high water mark indicates * the maximum number of characters stored in the buffer. The low water mark * indicates..
자바에서는 문자열 대소문자 변환에 대해 함수를 지원해줍니다. toUpperCase() javadoc에서 가장 첫 문장을 가져왔습니다. Converts all of the characters in this String to upper case using the rules of the default locale. String에 있는 모든 문자를 default locale의 규칙을 기반해 대문자로 변환해줍니다. 즉 모든 문자를 대문자로 바꿔준다는겁니다. toUpperCase함수의 반환값은 String입니다. 사용법은 다음과 같습니다. String testStr = "PeterJames"; String testStrUpperCase = testStr.toUpperCase(); testStrUpperCase에는 ..
blogs.sap.com/2019/10/07/does-32-bit-or-64-bit-jvm-matter-anymore/ Does 32-Bit or 64-Bit JVM matter anymore? | SAP Blogs 0 Likes 1,907 View 0 Comments blogs.sap.com 위 블로그에 정리가 잘 되어있다고 생각해 나름 요약하며 번역을 해 보았다. 일단 대부분 사람들은 64비트가 32비트보다 크다고 생각해서 64bit JVM의 성능이 32bit JVM보다 훨씬 성능이 좋다고 생각한다. 아쉽게도 64bit JVM이 32bit JVM보다 성능 저하를 보일 수 있다. 퍼포먼스에 대한 문제점이 있다면 왜 64bit JVM을 사용하는가? 32bit JVM 의 최대 메모리 공간은 4gb이다. 그..
1. 타임스탬프란? 특정 시간에 대해 일정한 포맷으로 기록을 한 문자열을 말한다. 일반적이라고 하면 애매하지만 YYYYMMDDHHmmss 포맷을 생각한다면 2019년 4월 18일 15시 30분 23초는 20190418153023 로 기록될 수 있다. 2. 그렇다면 자바에서는 어떻게? Date today = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddhhmmss"); String timeStamp = formatter.format(today); SimpleDateFormat의 생성자 파라미터에 원하는 포맷을 넣어준다. Oracle의 공식 문서에서 말하는 포맷은 다음과 같다. ※ HH는 24시, hh 는 12시로 나온다.
동일한 데이터 타입을 가진 것들은 모은 집합을 컬렉션이라 부른다. 컬렉션은 알아두면 정말 잘 쓰는 것들이고 그러기 때문에 기본적인 것들이다. 자료구조를 어느 정도 공부한 후 보면 이해가 빨리 된다. 자료구조를 쉽게 쓰라고 만들어 놓은 것들이기 때문에... 아래 표를 살펴보자. 출처 : https://www.javatpoint.com/collections-in-java이고 상당히 정리가 잘 되어있는 사이트이다. 자바에서 제공하는 컬렉션 프레임워크는 아래와 같은 구조를 가진다. 위 표를 말로 풀어 쓰면 아래와 같이 정리가 된다. Collection인터페이스는 Collection을 순회(탐색)하기 위한 Iterable 인터페이스를 상속받고 있다.(인터페이스가 인터페이스를 상속받는 경우는 구현이 아닌 상속으로 ..
SWT를 사용하여 GUI를 만들다 보면 마우스 스크롤 이벤트를 막아야할 때가 있습니다. 막기 위한 코드는 아래와 같습니다. swtObject.addListener(SWT.MouseVerticalWheel, new Listener() { @Override public void handleEvent(Event event) { // TODO Auto-generated method stub event.doit = false; } }); 막아야 하는 객체(swtObject)에 대해 리스너를 등록하고 막아야 하는 이벤트인 SWT.MouseVerticalWheel에 대해 설정해줍니다.