'대학 생활 > JAVA' 카테고리의 다른 글
[JAVA] 피보나치 - 재귀사용 (0) | 2015.11.13 |
---|---|
[JAVA] 퀵정렬(QuickSort) (0) | 2015.11.06 |
[JAVA] 병합정렬(MergeSort) (0) | 2015.10.30 |
[JAVA] 버블정렬(BubbleSort) (0) | 2015.10.23 |
[JAVA] 피보나치 - 재귀사용 (0) | 2015.11.13 |
---|---|
[JAVA] 퀵정렬(QuickSort) (0) | 2015.11.06 |
[JAVA] 병합정렬(MergeSort) (0) | 2015.10.30 |
[JAVA] 버블정렬(BubbleSort) (0) | 2015.10.23 |
보톤 반복문을 통해 하나하나 배열에 넣는 방법을 사용하는데, 속도도 느리고 효율성도 좋지 않다고 한다. 또한 arr = (String[])list.toArray(); 와 같은 코드를 사용한다면 List의 요소가 정확히 어떤 형태로 형변환을 해야 할지 명시하지 않아 java.lang.ClassCastException이 발생한다.
package Test; import java.util.ArrayList; import java.util.List; public class Example { public static void main(String[] args) { Listlist = new ArrayList<>(); list.add("test1"); list.add("test2"); list.add("test3"); String[] arr = (String[]) list.toArray(new String[list.size()]); for (String str : list) { System.out.println(str); } } }
[JAVA] int to string 여러가지 방법 속도비교 (0) | 2015.02.08 |
---|---|
[JAVA] method array 만들기 (0) | 2015.01.14 |
[JAVA 코딩습관] IP주소는 하드코딩을 피해라. (0) | 2014.12.31 |
[JAVA] 가변인자(varargs : Variable Argument List) 사용법, 사이즈 (0) | 2014.12.24 |
책 '자바 코딩, 이럴 땐 이렇게'에서 이번에도 꼭 알아두어야 할 것 같은 부분을 보고 남기려고 한다. 서버 프로그램을 작성할 때 서버의 IP를 소스코드에 하드코딩하는 습관이 바람직하지 않다고 한다.
첫 번째 이유는 관리적인 측면과 유지보수의 측면에서 볼 수 있다. 말 그대로 서버의 IP가 바뀌었거나, 소스 수정을 할 때 하나하나 찾아가며 바꿔야 하기 때문이다.
두 번째 이유는 보안적인 측면인데, 자바 소스는 디컴파일(decompile)이 가능하기 때문이다. 즉 JVM이 인식하는 코드 .class코드가 유출된다면 IP정보가 쉽게 유출된다는 점이다.
package Test; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class Example { private static final String DEFAULT_PROPERTIES_PATH = "d://test.properties"; private static String serverIP; public static void main(String[] args) throws Exception { setServerIP(Example.getKey("serverIp")); } public static String getKey(String key) throws Exception { String value = null; InputStream is = new FileInputStream(DEFAULT_PROPERTIES_PATH); Properties properties = null; try { properties = new Properties(); properties.load(is); value = properties.getProperty(key); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { } } return value; } public static String getServerIP() { return serverIP; } public static void setServerIP(String serverIP) { Example.serverIP = serverIP; } }
[JAVA] method array 만들기 (0) | 2015.01.14 |
---|---|
[JAVA] 올바른 list.toArray() 사용법 (1) | 2015.01.07 |
[JAVA] 가변인자(varargs : Variable Argument List) 사용법, 사이즈 (0) | 2014.12.24 |
[JAVA] PreparedStatement SQL 출력,확인하기 (2) | 2014.12.21 |
매개변수가 가변적일 때 사용하는 가변인자. 즉, 여러개의 파라미터를 가변적으로 사용할 때 사용된다.
방법은 아래와 같이 사용한다. API
public void printFormat(String... strs) { System.out.println("size : " + strs.length); for (String str : strs) { System.out.printf(" %15s", str); } }
[JAVA] 올바른 list.toArray() 사용법 (1) | 2015.01.07 |
---|---|
[JAVA 코딩습관] IP주소는 하드코딩을 피해라. (0) | 2014.12.31 |
[JAVA] PreparedStatement SQL 출력,확인하기 (2) | 2014.12.21 |
[JAVA 코딩습관] BigDecimal 객체 생성, 비교 (0) | 2014.12.10 |
객체를 생성할 때 실수가 아닌 String 형태 혹은 valueOf()를 사용하고 비교할 때는 compareTo()를 사용한다.
import java.math.BigDecimal; public class Example { public static void main(String[] args) { BigDecimal val1 = BigDecimal.valueOf(1.234); BigDecimal val2 = new BigDecimal("1.234"); System.out.println(val1.compareTo(val2) == 0); } }
[JAVA] 가변인자(varargs : Variable Argument List) 사용법, 사이즈 (0) | 2014.12.24 |
---|---|
[JAVA] PreparedStatement SQL 출력,확인하기 (2) | 2014.12.21 |
[JAVA 코딩습관] BigInteger 객체 사용법 (0) | 2014.12.03 |
[Servlet] template servlet - db server (0) | 2014.11.26 |
빈번히 사용되는 수는 매번 인스턴스를 생성하여 사용하지 않고 미리 정의된 상수를 사용한다.
import java.math.BigInteger; public class Exam { public static void main(String[] args) { BigInteger biZero = BigInteger.ZERO; BigInteger biOne = BigInteger.ONE; BigInteger biTen = BigInteger.TEN; BigInteger biTest1 = new BigInteger("10000000"); BigInteger biTest2 = BigInteger.valueOf(1000000); System.out.println(biTest1.intValue()); } }
[JAVA] PreparedStatement SQL 출력,확인하기 (2) | 2014.12.21 |
---|---|
[JAVA 코딩습관] BigDecimal 객체 생성, 비교 (0) | 2014.12.10 |
[Servlet] template servlet - db server (0) | 2014.11.26 |
[JAVA 코딩습관] Boolean 객체 사용법 (0) | 2014.10.24 |
인스턴스화하지 않고 static 필드인 TURE, FALSE를 사용한다.
public class BooleanExample { public static void main(String[] args) { // Boolean bool = new Boolean(ture); // Boolean bool2 = Boolean.valueOf(false); Boolean bool = Boolean.TRUE; Boolean bool2 = Boolean.FALSE; } }
[JAVA 코딩습관] BigInteger 객체 사용법 (0) | 2014.12.03 |
---|---|
[Servlet] template servlet - db server (0) | 2014.11.26 |
[JAVA] Swing GTKLookAndFeel JAVA1.8에서 실행할 때 (0) | 2014.09.26 |
[JAVA] 데몬 스레드(Daemon Thread) (0) | 2014.09.06 |
이미 java.util.concurrent.Semaphore 로 세마포어를 사용할 수 있지만 직접 만들어 보도록 한다.
이 코드가 세마포어를 구현한 것인지 확실하진 않다. 단지 내가 이해한 세마포어를 구현해보았다.
+ 세마포어란 하나의 공유변수를 사용하는데 아래 코드는 각 객체안의 변수를 사용하므로 모니터가 맞는것 같다...
[JAVA] 데몬 스레드(Daemon Thread) (0) | 2014.09.06 |
---|---|
[JAVA] MySQL 이클립스에서 Java 로 연동하기 (0) | 2014.08.15 |
[JAVA] List 중복값 제거후 정렬하기 (0) | 2014.07.23 |
[JAVA] 인코딩 다른 txt 파일 읽기(한글 깨짐 현상) (0) | 2014.07.16 |
비슷한 개념이지만 정확히 구별하면 인스턴스가 객체보다 큰 의미이다. 객체는 어떤 클래스를 사용해서 만들어진 것을 의미한다. 그리고 그 객체가 메모리에 할당되어 실제 메모리를 차지하는 것을 인스턴스라고 한다.
String str; str = new String("Hello world"); System.out.println(str);
위와 같은 코드에서 객체와 인스턴스를 구별해보자.
먼저 str은 String 클래스를 사용하여 객체를 선언한 것이다. 즉 아직 str에 문자열이 할당되어 있지 않은 상태이다.
그리고 다음 라인을 보자. new 키워드를 사용하여 JVM에 데이터가 생성된 것을 보여준다. 이렇게 객체를 실제로 메모리에 할당하는 과정을 인스턴스화(instantiate)라고 한다. 즉 객체 str에 "Hello world"라는 문자열을 할당해서 인스턴화하였다. 그리고 이렇게 인스턴스화된 것을 인스턴스라고 부른다.
[JAVA] List 중복값 제거후 정렬하기 (0) | 2014.07.23 |
---|---|
[JAVA] 인코딩 다른 txt 파일 읽기(한글 깨짐 현상) (0) | 2014.07.16 |
[JAVA] JDK 개발 도구 명령어 (0) | 2014.07.16 |
[JAVA] HeapSort Algorithm (0) | 2014.07.09 |
TextView t1 = (TextView)findViewById(R.id.t1); t1.setText(Html.fromHtml("1번째줄" + "<br />" + "2번째줄"));
[Android] Tab Activity로 나누기 (tabhost, intent) (0) | 2014.06.11 |
---|---|
[Android] version code, name 가져오기 (0) | 2014.06.10 |
[Android] java 코드(or 액티비티)에서 string.xml 가져오기 (0) | 2014.06.10 |
[Android] Google Maps Android API v2 (구글 맵) 사용하기 (0) | 2014.06.05 |
String st1 = getString(R.string.s1); CharSequence st2 = getText(R.string.s2);
[Android] version code, name 가져오기 (0) | 2014.06.10 |
---|---|
[Android]setText()에 개행(엔터), 태그 넣기 (0) | 2014.06.10 |
[Android] Google Maps Android API v2 (구글 맵) 사용하기 (0) | 2014.06.05 |
[Android] 뒤로(백버튼) 두 번 종료하기 (0) | 2014.06.05 |
안드로이드에서 2회 연속 백버튼을 눌러서 앱을 종료시키는 경우가 흔한데, 이 기능은 많이 사용되므로 다음과 같이 별도 클래스로 기능을 분리하면 향후 기능 재사용이 편리하다.
public class BackPressCloseHandler { private long backKeyPressedTime = 0; private Toast toast; private Activity activity; public BackPressCloseHandler(Activity context) { this.activity = context; } public void onBackPressed() { if (System.currentTimeMillis() > backKeyPressedTime + 2000) { backKeyPressedTime = System.currentTimeMillis(); showGuide(); return; } if (System.currentTimeMillis() <= backKeyPressedTime + 2000) { activity.finish(); toast.cancel(); } } private void showGuide() { toast = Toast.makeText(activity, "\'뒤로\'버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT); toast.show(); } }
BackPressCloseHandler의 구현은 간단하다.
2회 연속 백버튼 누를 때 종료시키고 싶은 Activity가 있다면, 다음과 같이 사용한다.
public class HomeActivity extends Activity ... { private BackPressCloseHandler backPressCloseHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.home_layout); ... backPressCloseHandler = new BackPressCloseHandler(this); } @Override public void onBackPressed() { backPressCloseHandler.onBackPressed(); } }
[Android] java 코드(or 액티비티)에서 string.xml 가져오기 (0) | 2014.06.10 |
---|---|
[Android] Google Maps Android API v2 (구글 맵) 사용하기 (0) | 2014.06.05 |
[Android] dialog 버튼 닫힘 막기 (Builder, AlertDialog) (0) | 2014.06.03 |
[Android] 아이콘 사이즈 (launcher icon size) (0) | 2014.05.30 |
코드
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvName = (TextView) findViewById(R.id.tvName); btnClick = (Button) findViewById(R.id.btnClick); btnClick.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { dialogView = (View) View.inflate(asdasd.this, R.layout.dialog, null); AlertDialog.Builder builder = new AlertDialog.Builder( asdasd.this); builder.setMessage("Test input data"); builder.setView(dialogView); builder.setPositiveButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.setNegativeButton("clear", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); final AlertDialog dialog = builder.create(); dialog.show(); dlg_edt_name = (EditText) dialogView .findViewById(R.id.dlg_edt_name); dialog.getButton(AlertDialog.BUTTON_POSITIVE) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Boolean wantToCloseDialog = true; tvName.setText(dlg_edt_name.getText()); if (wantToCloseDialog) dialog.dismiss(); } }); dialog.getButton(AlertDialog.BUTTON_NEGATIVE) .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Boolean wantToCloseDialog = false; dlg_edt_name.setText(""); if (wantToCloseDialog) dialog.dismiss(); } }); } }); }
[Android] Google Maps Android API v2 (구글 맵) 사용하기 (0) | 2014.06.05 |
---|---|
[Android] 뒤로(백버튼) 두 번 종료하기 (0) | 2014.06.05 |
[Android] 아이콘 사이즈 (launcher icon size) (0) | 2014.05.30 |
[Android] 이미 버전 코드가 1인 APK가 있으므로 다른 버전 코드를 사용해야 합니다. (0) | 2014.05.30 |
RandomAcessFile는 Object 클래스의 한단계 하위 클래스로 파일의 읽기, 쓰기가 가능하다.
파일시스템에 바이트로 저장된 큰 배열에 접근하는 방법으로 순차적으로 접근하는 방법이 아니라 파일 포인터를 이용해 임의의 위치(사용자가 선택한 인덱스)를 바로 읽을 수 있는 클래스이다.
1. RandomAccessFile(File file, String mode)
2. RandomAccessFile(String name, String mode)
* mode
"r" -> 읽기전용
"rw" -> 읽고 쓰기 가능
"rws" ->
[JAVA] HeapSort Algorithm (0) | 2014.07.09 |
---|---|
[JAVA] ArrayList 교집합, 합집합 메소드 (0) | 2014.07.02 |
[JAVA] 전기 요금 계산 (0) | 2014.05.14 |
[JAVA] (조금 더 정확한)실행시간 확인, 측정하기(timer) (0) | 2014.05.02 |
[JAVA] 전기 요금 계산 (0) | 2014.05.14 |
---|---|
[JAVA] (조금 더 정확한)실행시간 확인, 측정하기(timer) (0) | 2014.05.02 |
[JAVA] 파일 읽기, 쓰기 (0) | 2014.04.16 |
[JAVA] java.io.File 클래스 (0) | 2014.04.10 |
package Test03; class MainClass { public static void main(String[] args) { // 객체 생성, 메서드 호출, for한번 허용 MultiplicationTable play = new MultiplicationTable(); for (int chk = 0; chk != 1;) { try { chk = play.inputValue(chk); play.outputResult(); } catch (Exception e) { System.out.println(e.getMessage()); } } } }
package Test03; import java.util.Scanner; class MultiplicationTable { int input_first, input_last; int inputValue(int chk) throws Exception { // 입력 Scanner in = new Scanner(System.in); System.out.print("구구단의 시작단을 입력하세요 "); this.input_first = in.nextInt(); System.out.print("구구단의 마지막단을 입력하세요 "); this.input_last = in.nextInt(); // 예외 발생시키기 if (input_first > input_last) { throw new Exception("시작단은 마지막단보다 작아야합니다."); } if ((input_first < 2) || (input_last > 9)) { throw new Exception("구구단은 2~9단을 입력하세요."); } // 예외가 일어나지 않아야 밑으로 이동 chk = 1; return chk; } void outputResult() { for (int dan = input_first; dan <= input_last; dan += 3) { for (int line = 1; line < 10; line++) { System.out.printf(dan > input_last ? " " : "%d x %d = %2d ", dan, line, (dan * line)); System.out.printf(dan + 1 > input_last ? " " : "%d x %d = %2d ", dan + 1, line, ((dan + 1) * line)); System.out.printf(dan + 2 > input_last ? "\n" : "%d x %d = %2d\n", dan + 2, line, ((dan + 2) * line)); } System.out.println(""); } } }
[JAVA] * 별 출력하기_09 마름모 (0) | 2013.11.14 |
---|---|
[JAVA] 스무고개 만들기 (0) | 2013.10.28 |
[JAVA] 구구단 3단씩 출력(try-catch 사용)_01 (0) | 2013.10.08 |
[JAVA] * 별 출력하기_08 모래시계 (4) | 2013.10.04 |
이클립스를 사용하는데 글씨가 너무 작아서 I 인지 L 인지 구별도 안가고, 피로감이 몰려와 하기싫어지면 안되겠죠.... 많은 분들이 이클립스를 사용하시는데 이번 크기는 글씨 크기를 키우는 방법에 대해서 알려드리겠습니다.
Window - Preferences 를 클릭해줍니다.
General - Appeareance - Colors and Fonts 로 들어가지면
Java Editer Text Font 를 더블클릭 또는 오른쪽 상단에 Edit를 클릭해줍니다.
( 저의 경우는 JAVA만 바꾸도록 하였습니다. 원하는 언어의 폰트를 변경하거나 Basic(이클립스 기본)에서 Font를 변경하시면 글씨 크기, 글씨체, 글꼴 스타일을 바꾸실수 있습니다. )
위 사진과 같이 크기를 알맞은 크기로 변경후 확인하시면 글씨크기를 바꾸실수 있습니다.
이클립스 글자크기를 설정하는 포스팅을 이만 마치겠습니다.
[eclipse] 이클립스 루나 다크, 블랙 테마 적용(Eclipse 4.4 Luna Dark Theme) (0) | 2014.06.26 |
---|---|
[eclipse] 이클립스 톰캣 설치, 연동, 플러그인 (0) | 2014.01.28 |
[eclipse] 이클립스 자주 사용하는 단축키 (0) | 2013.09.27 |
[JAVA] 이클립스 라인넘버, 줄넘버 설정하기 (0) | 2013.06.03 |
이클립스를 이용해 자바로 작성한 프로그램을 실행시킬 수 있도록 실행파일(exe)로 변환하는 방법에 대해 포스팅하겠습니다. 준비물로는 작성된 소스파일, 이클립스, JSmooth 이렇게 세 가지가 필요합니다.
JSmooth는 링크와 아래 그림을 통해 다운 받으시면 됩니다.
1. JSmooth 설치하기
JSmooth 설치가 끝나셨다면 이클립스를 통해 jar파일을 생성하도록 하겠습니다.
2. *.jar 파일 생성하기
프로젝트에 오른쪽 버튼 클릭 후 Export 를 클릭합니다.
Java - Rnuable JAR file 선택 후 Next로 이동합니다.
먼저 Export destination에 .jar파일을 저장 할 위치를 지정해주고,
Launch configuration에는 만들고자 하는 클래스와 프로젝트를 선택하고 만들어주시면 됩니다.
3. JSmooth를 이용하여 exe파일 만들기
위 사진은 JSmooth 첫 실행화면입니다.
Skeletion Selection에 콘솔창 프로그램이라면 Consol Wrapper을, 윈도우창(AWT, Swing)이라면 Windowed Wrapper을 선택 후, 윈도우창을 선택했을 경우 아래 체크하시기 바랍니다.
위에는 .exe 파일의 경로를 선택하시고 아래는 아이콘으로 선택합니다.
먼저 아래에 .jar 파일을 선택하시고, 다음 Main class에 메인클래스를 선택합니다.
JVM 버전을 작성합니다.
모두 마친 후에 Project - compile 을 선택합니다.
JSmoonth파일을 생성할 위치를 선택하시고나면 exe파일이 만들어집니다.
위 사진과 같이 바탕화면에 두개의 파일이 만들어졌습니다.
이상으로 이클립스를 이용하여 자바 실행파일 만드는 방법에 대한 포스팅을 마치겠습니다.
[JAVA] * 별 출력하기_01 삼각형 (0) | 2013.09.15 |
---|---|
[JAVA] public static void main(String args[]) 의미 (0) | 2013.09.15 |
[JAVA] 예제로 확인하는 생성자 (0) | 2013.05.10 |
[JAVA]예제를 통한 생성자 이해하기 (0) | 2013.05.03 |
[JAVA] public static void main(String args[]) 의미 (0) | 2013.09.15 |
---|---|
[JAVA] 이클립스와 JSmooth를 이용한 실행파일(*.exe) 만들기 (0) | 2013.06.01 |
[JAVA]예제를 통한 생성자 이해하기 (0) | 2013.05.03 |
[JAVA]클래스메서드(static메서드)와 인스턴스매서드 예제 (0) | 2013.05.03 |
1. if
구조 |
if(조건식) { //조건식에 만족할 때 수행되는 문장. } else if(조건식2) { //조건식1이 만족하지 않을 때, 조건식2로 내려와 만족하면 수행되는 문장. } else { //생략이 가능하며, 위의 어느 조건도 만족하지 않을 때 수행되는 문장. }
|
* equals 메소드
String str1 = new String("Hello"); String str2 = new String("Hello");
if(str1 == str2) // 주소값을 비교. false if(str1.equals(str2)) // 변수 안에 내용을 비교하는 메소드. true if(str1.equalsIgnoreCase(str2)) // 변수안에 대소문자 가리지않고 내용만 확인. true
|
2. switch
구조 |
switch(조건식){ case 값1 : // 조건식의 값이 값1과 같을 경우 실행. break; // 모두 실행하고 switch문을 빠져나오기 위함. case 값2 : // 조건식의 값이 값2과 같을 경우 실행. break; default : // 위의 조건식에 일치하지 않을 때 실행. }
|
※ case문의 값으로 변수를 사용할 수 없다.(리터럴, 상수만 가능)
* Math 클래스의 random() : 0.0과 1.0 사이의 범위에 속하는 하나의 double값을 반환하는 메소드.
임의의 문자를 얻을 수 있도록 하는 예제. 0.0 <= Math.random() <1.0
0.0 * 26 <= Math.random() * 26 < 1.0 * 26 0.0 <= Math.random() * 26 < 26.0 출력하고자 하는 문자의 갯수 26을 각 변에 곱한다.
0.0 * 26 + 65 <= Math.random() * 26 + 65 <1.0 * 26 + 65 65.0 <= Math.random() * 26 + 65 < 91.0 아스키코드 65(A)부터 시작하므로 65를 각 변에 더한다.
(char)65.0 <= (char)Math.random() * 26 + 65 < (char)91.0 'A' <= (char)Math.random() * 26 + 65 < '[' 문자로 형변환을 한다.
|
3. for
구조 |
for(초기화 ; 조건식 ; 증감식){ // 조건식에 만족할 때 수행되는 문장. // 순서 : 초기화 → 조건식 → for문 수행 → 증감식 → 조건식 … // for문 안에 초기화에서 변수가 선언되면 for문 안에서만 사용가능하다. // } |
4. do-while
구조 |
do{ // 조건식에 만족할 때 수행되는 문장. // 최소한 한번은 수행되는 반복문. }while(조건식) |
break : 사용되는 위치에서 가까운 반복문을 빠져나오는데 사용된다.
continue : 반복문의 끝으로 이동하여 다음 반복이 진행된다.
Loop : 반복문 앞에 이름을 정해주고, break이나 continue에 같이 써줘 반복문을 벗어나거나 반복을
건너뛸 수 있게 한다.
[JAVA]예제를 통한 생성자 이해하기 (0) | 2013.05.03 |
---|---|
[JAVA]클래스메서드(static메서드)와 인스턴스매서드 예제 (0) | 2013.05.03 |
[JAVA] 변수(Variable), 변수의 종류, 크기 (0) | 2013.03.15 |
[JAVA]JAVA API 한글 (0) | 2013.03.15 |
변수란
하나의 값을 저장할 수 있는 공간.
변수의 선언
변수타입 변수이름;
char name; // 문자형 변수 name을 선언한다.
변수의 이름(메서드, 클래스의 이름도 포함)을 선언할때, 대소문자 구분해야한다.
숫자로 시작하거나, 예약어를 사용하면 안 된다.
특수문자는 '_'와 '$'만 사용가능하다.
int num = 6 ; // 선언후 변수의 값을 6으로 초기화 한다.
변수의 타입과 크기
기본형(Primitive type) : boolean, char, byte, short, int, long, float, double
참조형(Reference type) : 기본형을 제외한 나머지 타입
|
1 byte |
2 byte |
4 byte |
8 byte |
논리형 |
boolean |
|||
문자형 |
char (유니코드) |
|||
정수형 |
byte |
short |
int (기본 자료형) |
long |
실수형 |
float |
double (기본 자료형) |
데이터 타입 |
변수의 범위 |
기본값 |
크기 |
boolean |
true, false |
false |
1 byte |
byte |
\u0000~\uffff (0~65,535) |
0 |
1 byte |
char |
-128~127 |
'\u000' |
2 byte |
short |
-32,768~32,767 |
0 |
2 byte |
int |
-2,147,483,648~2,147,483,647 |
0 |
4 byte |
long |
-9223372036854775808~9223372036854775807 |
0L |
8 byte |
float |
1.4E-45~3.4028235E38 |
0.0f |
4 byte |
double |
4.9E-324~1.7976931348623157E308 |
0.0 또는 0.0d |
8 byte |
[JAVA]클래스메서드(static메서드)와 인스턴스매서드 예제 (0) | 2013.05.03 |
---|---|
[JAVA]if, switch, for, while (조건,반복문) (0) | 2013.04.05 |
[JAVA]JAVA API 한글 (0) | 2013.03.15 |
[JAVA] Java 환경변수(path) 설정하기 (4) | 2013.03.13 |
2015.01.29 추가
이번에 JAVA를 다시 설치하면서 환경변수가 자동으로 설정된다는 것을 알았다.
Path를 보니 c:\ProgramData\Oracle\Java\javapath 가 지정되어 있었고, 그 디렉토리 안에는 Java가 바로가기파일로 들어있었다. 앞으로는 따로 환경변수를 지정하지 않아도 될 듯하다.
환경변수 |
설명 |
---|---|
Path |
OS에서 명령어를 실행할 때 명령어를 찾아야 하는 폴더의 순위를 설정하는 환경 변수 |
CLASSPATH |
JVM이 시작될 때 JVM의 클래스 로더는 이 환경 변수를 호출한다. 그래서 환경 변수에 설정되어 있는 디렉토리가 호출되면 그 디렉토리에 있는 클래스들을 먼저 JVM에 로드한다. 그러므로 CLASSPATH 환경 변수에는 필스 클래스들이 위치한 디렉토리를 등록하도록 한다. |
JAVA_HOME |
JDK가 설치된 홈 디렉토리를 설정하기 위한 환경 변수다. 반드시 필요한 환경 변수는 아니지만 Path와 CALLPATH 환경 변수에 값을 설정할 때 JAVA_HOME 환경 변수를 포함하여 설정한다. |
아래의 아무것이나 한 가지 선택해서 환경 변수 설정 창을 실행 시킨다. 1. '제어판 → 모든 제어판 항목 → 시스템' 선택 후 '고급 시스템 설정' 클릭하고 고급 탭에서 '환경 변수' 클릭. 2. 내컴퓨터 오른쪽 클릭 후 속성 선택하고 고급 탭에서 '환경 변수' 클릭.
'새로 만들기' 선택 후 변수 이름은 'JAVA_HOME'이고 변수 값은 자신의 컴퓨터에 설치된 JAVA의 경로를 입력한다.
'새로 만들기' 선택 후 변수 이름은 'CLASSPATH'이고 변수 값은 자신의 컴퓨터에 설치된 %JAVA_HOME%\lib를 입력한다.
java -verion, javac -version 은 Path에 추가 되었는지 확인하기 위함이고, echo %CLASSPATH% 는 CLASSPATH가 추가 되었는지 확인하기 위함이다.
컴파일하고 실행시에 "기본 클래스 을(를) 찾거나 로드 할 수 없습니다. 라는 에러메세지가 뜬다면 다음과 같이 실행시킨다.
java -classpath ".;lib" Helloworld
혹은 CLASSPATH의 변수 값을 다음과 같이 수정한다.
%JAVA_HOME%\lib\;.
[JAVA]클래스메서드(static메서드)와 인스턴스매서드 예제 (0) | 2013.05.03 |
---|---|
[JAVA]if, switch, for, while (조건,반복문) (0) | 2013.04.05 |
[JAVA] 변수(Variable), 변수의 종류, 크기 (0) | 2013.03.15 |
[JAVA]JAVA API 한글 (0) | 2013.03.15 |