1) Wrapper 클래스
일반자료형을 감싼 객체
쓰는목적: 콜렉션을 배우는데 콜렉션은 객체만 허용!
Un boxing> 참조자료를 일반자료로 바꿔줌
■ Java 버젼별 차이점
Java 8 IOT
Java 7 부터 클라우드도입 (Thread.group) X
Java 6
Java 5 -> Auto Boxing [K1] : 자동으로 Wrapper Class[K2] 화 시켜주는 기능 //Un
1.4..
[K1]jdk5부터 암시적 객체생성을 Autoboxing 이라함
Auto boxing >일반자료형을 참조자료형 안으로 넣어주는것
Un boxing> 참조자료를 일반자료로 바꿔줌
ex) Integer aa=20; 오토박싱
[K2]일반 자료형
boolean char byte short int long float double
Wrapper Class=일반자료형을 감싼 객체
쓰는목적: 콜렉션을 배우는데 콜렉션은 객체만 허용!
int a=10;
long b=a; << 프로모션 //b=10
b=20L; //b=20
■ 자료형
1. 일반 자료형 [K3] ex) 메모K1
2. 참조 자료형 [K4] ex) 그 이외 ! //String str= "test"[K5] [K6] ; char ch='a';
■ String 클래스
참조자료형, 문자열 값을 저장(기억)
★ 객체는 생성시 new 사용해서 heap에 번지를 할당받아서 생성후 "참조"사용
ex) String str; //선언 [K7] str=new String("T") //객체를 생성
>>이 과정을 축약하여 String str=new String("T");
new String("T")="T" 명시적 객체생성방법
"T"=new String("T") 암시적 객체생성방법
//new 를 또 생성하면 heap에는 객체 2개 생성
■ 변수
1. 멤버 필드(변수)
2. 지역 변수
■ Static >오직 하나만 만들어서 공유해서 사용,생성 없이 사용 //상수>static
■ 단축키(넷빈즈)
psvm 탭 = public static void main(String[] args) {} //psvm 탭
sout 탭 = System.out.println("");
자바 api 주소 http://docs.oracle.com/javase/8/docs/api/
·
· java.lang.Boolean
탭이 되어있으면 상속이 되어있다는거다.
[K2]일반 자료형
boolean char byte short int long float double
Wrapper Class=일반자료형을 감싼 객체
쓰는목적: 콜렉션을 배우는데 콜렉션은 객체만 허용!
[K3]값을 저장한다.
[K4]주소값을 저장한다. heap으로 저장됨
[K5]문자열
[K6]정석 String str= new String("Test")
[K7]선언은 stack으로 저장
Ex1_Boolean 실행파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package ex1; public class Ex1_boolean { public static void main(String[] args) { //일반 자료형에 값을 대입하기위해선 변수에 선언! boolean if1=true;// 변수 선언을 해서 지역변수라stack에 들어감 //+는 문자와 연결하는 연산자다 또 println으로 들어가는순간 모두 문자열이됨! System.out.println("결과값!"+if1); System.out.println("다른결과값!"+(!if1));//!는 부정 true면 false로 바뀜 Boolean b1b=new Boolean("true");//불리언 객체를 만듬 System.out.println("결과값1은 "+b1b); b1b=false; // Auto boxing 을 함 Wrapper 클래스로 생성 String str=b1b.toString();//bb Boolean을 String으로 바꿈 boolean last1=Boolean.valueOf(str);//String>Boolean>boolean으로 Auto boxing됨! //static은 자원생성없이바로사용가능 *****가장중요한거니 외우자! System.out.println("결과2"+b1b); boolean c1c=b1b; //언박싱을 함! System.out.println("결과3"+c1c); System.out.println("문자열 변환 :"+str); System.out.println("마지막예문 :"+str); } } |
코드 실행 및 결과 run: 결과값!true 다른결과값!false 결과값1은 true 결과2false 결과3false 문자열 변환 :false 마지막예문 :false BUILD SUCCESSFUL (total time: 0 seconds) |
Ex2_DataType 실행파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | package ex1; public class Ex2_DataType { public static void main(String[] args) { byte num1=11; byte num2=5; //바이트 변수를 선언함! //byte res=num1+num2 하면안되는 이유가 num1로 바로 치면 4바이트 //연산을하기때문에 디모션이 일어난다! 그렇기에 byte res=(byte)(num1+num2);//로 바꾼다! System.out.println(res); short num3=30; short num4=60; short res2=(short)(num3+num4);//이것도 ()로 변환을 해줘야함! System.out.println(res2); long num5 =140L; long num6 =100L; long res4=(long)(num5+num6); System.out.println(res4);//long도 같은 맥락 Long numInteger2=res4; // 일반자료형에서 참조자료>> 오토박싱! String str2=numInteger2.toString(); // Long 객체에서 String형(문자열) 객체로 long numRes2=Long.valueOf(str2); //다시 Long 객채로 만든후 long 일반자료형으로 언박싱! System.out.println(numRes2); System.out.println("-------------------"); int numint = 300; int numint2 = 400; int res3=(int)(numint+numint2); //인트는 그냥 안해도됨! System.out.println(res3); Integer numInteger = res3; //일반자료에서 참조자료가됨! 오토박싱 String str1=numInteger.toString();//단순 문자열로같이변환 int numRes=Integer.parseInt(str1);//String>int //parseint 는 static 매서드>heap에 저장없이 그냥 사용 즉 언박싱이 일어나지않는다! long numLong=110L;//L을 써줘야 8바이트 스택으로옮겨짐!! System.out.println(numLong); System.out.println("---------------------"); char char1 = 'A'; //문자를저장하기위한 char는 2바이트체계 (유니코드도 가능!) '' 로해야된다 char char2 = 68; //68을 써보니 D가 나온다 65부터 순서대로 나오는것같다! System.out.println(char2); char char3 = '\uB204'; //"누"가 나옴! System.out.println(char3); float f1=3.95f; //실수형 중 float으로 타입을 지정함. System.out.println(f1); } } |
코드 실행 및 결과 run: 16 90 240 240 ------------------- 700 110 --------------------- D 누 3.95 BUILD SUCCESSFUL (total time: 0 seconds) |
Ex1_Oper 실행파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package ex2; public class Ex1_Oper { //static 매서드 public static String msg(){ return "엄성렬"; } public static void main(String[] args) { // static 끼리는 생성없이 바로 호출이 가능!!** // dot(.)연산자를 이용해 객체의범위에 속해있는 멤버를 접ㄱ근할떄 사용! Ex1_Oper.msg(); String msg1=Ex1_Oper.msg(); //위에있는 msg를 이용함! System.out.println(msg1); int[] arr={5,7,8}; for(int e: arr) { System.out.println(e); } int i =3*4+4-2/3; System.out.println(i);//16이 나올것이다! } } |
코드 실행 및 결과 run: 엄성렬 5 7 8 16 BUILD SUCCESSFUL (total time: 0 seconds) |
Exam1 실행파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | package ex2; public class Exam1 { // 일반 자료형, Wrapper클래스들을 반환하는 static메서드 각각 만들고 //그 값을 main에서 반환받아서 각각 출력해보기 public static int num1(){ return 10; } public static byte num2(){ return 22; } public static float num3(){ return 2.4f; } public static boolean num4(){ return true; } public static double num5(){ return 4.5; } public static long num6(){ return 3444L; } public static char num7(){ return 'a'; } public static short num8(){ return 33; } public static void main(String[] args) { int num = Exam1.num1(); Integer numN=num; System.out.println("Num :"+numN); byte numnum2=Exam1.num2(); Byte numB=numnum2; System.out.println("Byte :"+numB); float numnum3=Exam1.num3(); Float numF=numnum3; System.out.println("Float :"+numF); boolean numnum4=Exam1.num4(); Boolean numBL=numnum4; System.out.println("Boolean :"+numBL); double numnum5=Exam1.num5(); Double numD=numnum5; System.out.println("Double :"+numD); long numnum6=Exam1.num6(); Long numL=numnum6; System.out.println("Long :"+numL); char numnum7=Exam1.num7(); Character numC=numnum7; System.out.println("Char :"+numC); short numnum8=Exam1.num8(); Short numS=numnum8; System.out.println("Short :"+numS); } } |
코드 실행 및 결과 run: Num :10 Byte :22 Float :2.4 Boolean :true Double :4.5 Long :3444 Char :a Short :33 BUILD SUCCESSFUL (total time: 0 seconds) |
'-Java' 카테고리의 다른 글
배열 Array (0) | 2016.01.07 |
---|---|
Java의 제어문, 접근제한자 (0) | 2016.01.07 |
제어문, 자바 응용(홀짝게임, 구구단) (0) | 2016.01.07 |
자료형 연산자, 변수의 활용, 제어문 (0) | 2016.01.07 |
자바 특징, 클래스 규칙, 용어 설명 및 개발도구 설치 (0) | 2016.01.07 |