반응형
Screenshot_2017-09-24-11-17-06-1.pngScreenshot_2017-09-24-11-17-14-1.pngScreenshot_2017-09-24-11-17-24-1.png

난 군견병 시절 2년동안 육군에서 저먼 세퍼트, 벨지움 마리노이즈 개새끼들을 운용하고 전역을 했어.



사람들이 다 다르듯 군견들도 다 다르다.
다르다는것이 외모를 말하는게 아니라
바로 천성, 성격 등의 심적인 자질이야. 동시에 지능도 마찬가지지.


아무튼 각설하고 본론들어갈게.


요새 tv보면 동물이 친구고 동물의 잘못이 아니라 인간의잘못이며 그래서 우리가 달라져야 한다 라는 분위기가 엄청나게 퍼져있고 그렇게 착한컨셉잡은 조련사 선생님들이 tv에 나와서


존나신박하게 존나 나긋나긋하게 개새끼를 교육하고 존나 또 그거 보고 신기해하고
우리 뽀삐야 엄마가 잘못햇어 ㅜㅜ
이런 장면들이 굉장히 많이 나오지


팩트들어간다 이제.
반은 맞고 반은 틀린이야기야.


결론부터말하자면 요즘 대두되는 저러한 행동보상식? 교화식?  방법은 빡대갈인 멍청한 개새끼들에게는 효과만점이고,
똑똑하고 눈치좋은 개들한테는 그냥 몽둥이들면 쉽다.


누가 막 그러지? 개들은 맞아도 무슨잘못햇는지 모르기때문에 때리지말라고.
ㅋㅋ그건 멍청한새끼에 한한 이야기다,
똑똑한새끼들은 잘못하고 처맞아도 다알아들어ㅋㅋ


아마  푸들, 보더콜리 등 지능 높은 개 키워본애들은 알거다.
가만히 개새끼를 보고있으면  눈알굴리는게 눈에보이고 잔머리 쓰는 타이밍이 존재한다는것을.


이런똑똑한새끼들은 지들 유리한것만 낼름낼름 척먹으려고하기때문에 tv에 나오는 행동보상식 간식 주면서 훈련하면

단기간적으로는 매우 효과가 잇겟지만 장기적으로는 이새끼들이 이젠 사람머리 꼭대기에 앉을려고하기 때문에 좋지안타.

어려서 부터 잘못햇을 때 처맞는 훈련을 하면 이게 나쁘게 말하면 트라우마, 좋게 말하면 ㅆㅅㅌㅊ 교육이 되기 때문에 

나중에 개가 커져도
니들이 "  아니 씨발 개새끼가? "  하고 언성만높이면 질질 싸며 말존나잘듣게된다.







반응형
by 발전소장 에르 :) 2017. 9. 28. 01:32
반응형
[레벨:5] 사오후우적쿰척


영상 요약


1. 유튜브의 파괴농장에서 도비탄(* 탄두가 단단한 물체에 맞고 튕겨져 나가는 것)의 파괴력을 실험해 봄


2. 실험은 철판을 세워두고 그 뒤에 나무판자를 배치함으로써, 철판에 맞고 튕긴 도비탄의 파괴력이 나무판자를 뚫을 수 있는 지였음.


3. 영상 0:55에 CZ Scorpion 9mm를 쏘아보았으나 별다른 피해를 주지 못함. 탄은 파편으로 비산하여 나무판자에 박힐 뿐이었고 그나마 뚫지 못함.


4. 영상 2:26에 CZ Scorpion 9mm를 쏘면서, 판자의 바로 앞에 수박을 배치하여 수박을 깨트릴 수 있는 지를 봄,

수박은 깨졌지만 나무판자에는 아무런 영향을 끼치지 못함.


5. 영상 3:37에 모신나강 7.62mm를 쏘자 수박도 파괴하고 나무판자도 관통함, 그러나 파편이 비산되었기에 강한 파괴력을 지니진 못한 관통이었음


6. 영상 5:25에 .45-70 Government를 쏘았으나 수박만 파괴할뿐 나무판자는 관통하지 못함 (박힘)


7. 영상 6:11에 .45-70 Government를 다시 쏘자 나무판자를 관통함, 그러나 역시 파편이 비산되기 때문에 강한 파괴력을 지니진 못한 관통이었음





(+ 보너스)


영상 6:30에 50구경으로 쏘는거 있는데 봐라 ㅇㅇ







< 결론 >



도비탄으로는 바로 옆의 대상에게만 피해를 줄 수 있을 뿐, 원거리의 대상에겐 피해를 줄 수 없다. 파편이 비산되기 떄문이다.


탄두가 한 뭉치로 튀는 게 아니라, 바스라지면서 비산되는 것이기 때문.






asdf.png

사격장에서 쏜 도비탄이 400m 밖의 대상에게 관통상을 입힌다?


50구경이 아닌 이상 불가능 하다.



반응형

'정보발전소♫' 카테고리의 다른 글

아마존(Amazon)에 대해  (0) 2018.01.02
군견병출신이 알려주는 개 잡는 방법.tip  (0) 2017.09.28
인간 vs 샤를마리 드 라콩다민  (0) 2017.05.29
학도병 유격대 6.25  (0) 2017.05.21
항공모함의 크기  (0) 2017.04.10
by 발전소장 에르 :) 2017. 9. 28. 01:31
반응형

이클립스를 사용하며 다양한 플러그인(PlugIn) 과 디펜던시(dependency)를 사용할 수 밖에 없으실텐데요.

종종 발생하는 에러가 있죠, 

바로 다운받았음에도 불구하고 네트워크상 오류 혹은 다른 오류로 제대로 다운받지않았음에도 불과하고

이클립스는 완벽히 다운받았다고 우기다가 기어코 에러를 만들어내죠.

물론 Dependency 에러라면 .m2폴더에서 해당 폴더를 지운 후 이클립스에서 프로젝트를 새로고침하면 

똑똑한 이클립스가 다시 다운받아주고 거의 93%의 확률로 해결이 되는데요.

PlugIn의 경우에는 어떻게 해야할까요.

Uninstall을 눌러줌으로써 해당 플러그인 삭제가 가능합니다.


또는,

이클립스마켓플레이스( Eclipse Market Place)에서 해당 플러그인을 검색하시고 밑에 뜨는 

"Uninstall"을 누르셔서 삭제가 가능하고


정말 이클립스가 멍텅구리가 되서, 내가 수동으로 지워야겠다! 하시는 분들은

해당 플러그인 사이트를 참조하시어 플러그인이 설치된 디렉토리를 타고들어가서 

rm -rf 로 지우셔야겠지요.


근데 저는 tern Eclipse IDE를 다운받으려는데 4~5차례 마켓에서도 다운받고 Install New Software...로 수동으로 다운받아보고

했는데도 애가 당최 인식을 못하는거 아니겠습니까..

그래서 폭풍 구글링을 하던차에, 찾게된 이 곳!

https://www.eclipsezone.com//eclipse/forums/t61566.html

아니 이클립스를 "클린모드"로 실행시킬 수 있다고?!

개판인 워크스페이스를 지우기위해서는 eclipse를 실행시킬때 첫번쨰 인수로 -clean을 주면

OSGI framework와 eclipse runtime이 사용한 모든 캐시 데이터를 지워준다고하네요.

번들 디펜던시 분석 결과값들과 이클립스 확장 레지스트리 데이터도 지워준다고 합니다.

마지막으로 이클립스를 위에 언급된 캐시들을 재초기화하라고 강제한다고하네요.

주의점이있습니다.

일회용 플래그이므로 한번 실행 후에 지우길 권장하고있고,

삭제하지않고 실사용한다면 2~3배 길어진 스타팅 시간을 겪게될거라 장난반 진담반으로 명시해두고있네요.

그렇다면 이제 방법을 알아볼까요?

1. <이클립스 실행 디렉토리>에 있는 eclipse.ini의에 첫번째 줄에 -clean을 넣은 후 실행.

그냥 홈에서 들어가면 안들어가져요~ 두번 위로 올라가 줍시다.

vi로 금방 치고 빠집시다 !

상단에 i로 -clean를 넣어준 후 :wq로 저장 후 빠져나와 이클립스를 평소와 같이 실행시켜주세요.

그럼 이클립스가 평소와 다르게 세월아~네월아~ 시작하는걸 보실 수 있습니다.


2. 커맨드라인에서 이클립스를 실행할 때 인수로 -clean를 넣고 실행하면 됨!

저는 맥유저이니, 터미널로 들어가줍니다.

이클립스가 위치한 폴더에서 진행하였는데요.


뚜둔!



3.배치나 쉘 파일에 -clean을 넣어서 본인이 클린이 필요하다싶을때 한번 쯤 해주면 편하고 좋을듯?! 이라고하는데

귀찮아서 패스..( 배치나 쉘로 만들어놓을 가치는 없다고 봅니다..개인적으로!)


그래도 이것저것 더해보고도 안고쳐진다면..?

그냥 다시 설치하랍니다. ㅋㅋㅋㅋㅋㅋ

역시 모든 솔루션의 끝판왕은 " 재 설 치 " 네요.

긴글 읽어주셔서 감사하고 피드백받겠습니다~ 

목 건강 조심하세요~





반응형
by 발전소장 에르 :) 2017. 9. 27. 23:43
반응형



 11414 (8).jpg 


11414 (9).jpg

7-80년대에  가정용 게임기가 나오며 


11414 (10).jpg

전세계 애새끼들은  오락기사달라고 졸랐다 ...


11414 (14).jpg

게임산업은 점점 발전했고   대형화되고 많은 투자가 이루어져 



 수백만이 플레이할만한   대중적인 게임들이  시장에 대세가되었다 



11414 (1).jpg

게임을 만들고싶었던  소수의   인디게임개발자들은 완전히  몰락하였고 


게임을 만들어도    월마트같은 판매점에서  대형 게임(ea나  윾비  블리자드 등등 )  외에는  받아주지않았다 

tumblr_mwkcr3mQ6W1s6p0yoo1_500.gif 


대형자본 잠식상태


11414 (15).jpg


인디게이:    단한놈이라도  구멍가계  구석에   진열된  게임하나 싼값에사서  


해보고  좋아해주는 사람이 있다면...된다 ....   




11414 (20).jpg

그러던 어느날  대형 게임회사들이   대형 유통매장에 밑보이기   싫어서   시도하지않은  온라인판매를  

14.gif 

스팀이 처음  시작 


11414 (23).jpg

선구자가 나오자 쫄보였던    psn xbox 등도   뒤를이었다 .



11414 (24).jpg


스팀이후   인디게임시장은   지금껏  단한번도 일어나지않았던 일들이  벌어졋다    

11414 (25).jpg

 

캐슬크래셔 



11414 (28).jpg


tumblr_mk1twhYrTV1rblgs0o1_500.gif 

림보가 나오며   기존의 인디게임 패키지   판매최고 기록을 몇백배 뛰어넘고    


11414 (29).jpg


2009년  마인크래프트 라는 이상한 인디게임이     

11414 (32).jpg


단기간에   백만달러를 훌쩍넘어서며  



 인디게임이  거대기업 게임들 수익을 넘어섯다     

11414 (33).jpg

200명이상 투입하고 수백만 달라가 투자된


 거대 블록버스터 게임들을     능가하는 흥행을 2명이.........   씨발..

 

 tumblr_nk06b3Epl51rom85wo1_500.gif 

거대 게임만 만들어내던   투자자들은      게임계에  뭔가 이상한  틈새  시장이 있다는걸 깨닫게된다 

 



(ms는  후에   이게임을 25억달라 (2조 5천억)에  삼  )




11414 (17).jpg

 

이후   모든  인디게임제작자들이   좆같이  어두운 인디게임시장에서 광명을 찾은


 마인크레프트의   뒤를 잇고싶었다

tumblr_mgxmk45IMO1rq2sggo1_400.gif 


이런 전설적인 인디게임들에 의해  잘나갈 것만 같았지만   좆같은 딜레마가 있엇다    

11414 (84).jpg

2008 인디게임 페스티벌   



ign  아트어워드 우승자  



11414 (86).jpg


fez 


11414 (88).jpg


모든  웹진에 올라가고   엄청난 화제  ..  






11414 (93).jpg


심지어  캐나다 정부에서도    냄새를 맡고  

 60d66238aec3732ff1fdfe4ab7add275.jpeg tumblr_ofmas0TJm01r72ht7o1_500.gif

 존나 충격을 쳐먹고 뒤늦게   국비투자를 직접  들어가기시작( 캐나다 퀘백사는놈임 ) 



11414 (98).jpg

하지만   매일 트위터에 언제나오냐고 하루에 몇천개씩 


댓글이 달렸다  


11414 (101).jpg


만들긴하냐??? 씨발 이번생에는 나오냐?  인디게임주제에  존나오래걸리네 

11414 (102).jpg


매일 초딩같은새끼가 트위터와서 악플을 날렸다 

11414 (103).jpg

야  밸브는    후속편   존나안나와도 지랄안하면서 !!!! 


11414 (105).jpg

이코는 발표하고 출시까지  5년걸렸어 

11414 (106).jpg

레데리도 발표하고   5년간   천명넘게   아트 디렉터랑 프로그래머  천명   더 붙어서 만들었고  



11414 (108).jpg


그타4도 5년기다리게하고 천명 인력추가되고    

11414 (111).jpg

우린 두명이 만든다고   겨우 2년지낫다  씨발롬들아  

11414 (112).jpg


절로 꺼져 

11414 (94).jpg

꺄아아아악!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!

tumblr_nnbjb9nujh1qa0n48o1_r1_500.gif 

게임 투자의 가장큰 딜레마     '출시하기까지의 시간.. '



일단   유명새를 탄것 자체가 일단  홍보비절약  .  유명새를 탄  


상태에서 게임이 좆망하더라도  빨리 출시만한다면   상당히 괜찮은투자임....   



 개발기간이 걸리면  왠만한  유명  메이커게임이   아닌이상 


투자에대한 확신이 서지않는다.... 그렇게 투자비를 금새 뺴게됨     



11414 (125).jpg

 그러다  하도 안나와서 x박스 투자자겸 유통사쪽에서  



a6ef802446add964c0282ff1b038f282.jpeg 

ms:   2011 게임어워즈에  좀 나와라  


13개월안에 만들어라  씨발새끼들아  마지막경고다   


tumblr_nedy8jNred1sq41yeo1_500.gif 



이 씨발 인원이 더필요하면 투자해준다고 


해도 씨발 무조건 두명이만들겠데  씨발롬들이 





11414 (126).jpg


샌프란시스코 


11414 (128).jpg

40대가된 인디게임제작자   조너선   


  혼자서 아트디렉터 프로그래밍  사운드 까지  다하고있다 


11414 (129).jpg

이제  나이쳐먹고    돈도 없고 


11414 (130).jpg

 몇몇 인디게임 말아먹고  



자신이  표현하려던 세상은


이미   무너져  이번생에는  이룰수 없을거같다...  포기하기전    



 마지막 게임을 만들기로한다 .. 


11414 (328).jpg

양복을 입은  늙은 얼굴의 소년   


  어떤 소중한것이 있엇는데  기억나지않는다  

11414 (145).jpg


40대  인디게이머   자신의 이야기.. 그 기억의 퍼즐을 찾아 떠나는여행  


11414 (143).jpg 


이상하고 심오한 스토리 

11414 (146).jpg

 공주를 구하는내용 


11414 (134).jpg

개발  3년만에 게임출시 


11414 (330).jpg

반응은 폭발적이었다 

11414 (137).jpg

굉장한 성공을 이룬케이스지만     

11414 (331).jpg

인터넷에서 어떤 공감의식에 의해  재미없어도 


재밋어 하는 휘둘려지는 모습도 많이  보였다


 

11414 (340).jpg

11414 (333).jpg

냉정한 평가보단 어떤  의식에 휘둘리는 



 구글에서 검색했더니 게임보단  자신의 성공에대한  드라마틱한 스토리가 더 많았고



11414 (139).jpg

대부분은  이게임이 그냥 심오하기만하고    



뭔의미인지 모른다는 생각이 들었다 



11414 (335).jpg

마지막으로  필사적으로 만든건데 ....    

tumblr_nivsajMA6c1skasmxo1_500.gif



11414 (343).jpg


병신같네 




11414 (188).jpg


인디게임개발자 3 :   4살때  크리스마스 선물로    게임기와  팩3개를 받았다  


11414 (192).jpg


마리오 젤다 테트리스 씨발 오락계의 3신기 



11414 (49).jpg  


13살때부터 오락기에  미쳐서 집에서 나오지않기시작했다..   


11414 (52).jpg


오로지  자신만의  게임을 만들고싶었다.. 


11414 (298).jpg

일게이 2    어느덧 30대...  


11414 (299).jpg


가진돈도없다   이렇게 새벽에 몰래와서 가장싼거쳐먹고 

11414 (301).jpg

 이렇게 궁상떠는데  여자가 있을리없지   차도없고 


11414 (302).jpg

내 식비도 딸려...

11414 (48).jpg


파트너   게임 아트디렉터  


에드먼드 이새낀

11414 (164).jpg

매일   일게이가 작업실로오면     일게이그림그리면서  개드립쳐서     


평소엔  본가에 가서 일하면서   떨어져 있음 .....     


11414 (165).jpg 


개드립치지말고 일해라!!!!!  


11414 (67).jpg


게임개발기간이   너무 오래되는바람에 


  배급사나 투자자도 떨어져나갓고 

11414 (277).jpg

마지막끈이었던  x박스측에서    


이번 게임 패스티벌에   들어올건지 한달내로  알려달라는 소릴듣게되고


담당자로부터 이번에 밀리면   출시일 엄청 기다려야한다는  부담까지..  

11414 (279).jpg


아트 디랙터도   프로그래머 


 일게이와 마찬가지로 이제 더이상 통장에 잔고도없다...  

11414 (280).jpg


집도 대출인데.. 


11414 (373).jpg

우리는 망했다.. 



11414 (36).jpg


이들은 대박칠수잇을것인가 

반응형
by 발전소장 에르 :) 2017. 9. 25. 23:57
반응형

package com.access.array;


/*

 *  오브젝트와 클래스의 차이점

 *  Object

 *  1) 클래스의 인스턴스이다.

 *  2) 현실 존이다(펜, 렙탑, 모바일 등등)

 *  3) 물리적 존재이다

 *  4) 오브젝트는 new 키워드로 만들어진다.

 *  5) 매번 요구시 만들어진다.

 *  6) 오브젝트는 만들어질때 메모리에 할당된다.

 *  7) new 키워드,newInstance() method 등등 다양한 방법으로 오브젝트를 만들 수 있다.

 *  

 *  

 *  Class

 *  1) 오브젝트를 만들때 참조하는 도안 혹은 청사진이다.

 *  2) 유사한 객체의 그룹이다.

 *  3) 논리적 존재이다.

 *  4) class 키워드로 선언된다.

 *  5) 한번 선언된다.

 *  6) 클래스는 만들어질때 메모리에 할당되지않는다.

 *  7) class키워드로만 클래스를 정의할 수 있다.

 */

public class object {


}



반응형
by 발전소장 에르 :) 2017. 9. 25. 23:44
반응형

package com.command;


/*

 *  Java Command Line Argument

 *  자바프로그램을 실행할 때, 커맨드 라인에 인수를 넣어주는 것을 의미한다.

 *  콘솔에서 입력되어 프로그램에 전달되는데 입력으로 사용될 수 있다.

 *  그래서 프로그램이 작동할 때 다양한 값을 넣어 어떻게 반응하는지 테스트할때 편리하게 사용될 수 있고

 *  명렁창에서 n개의 인수를 줄 수 있다.

 *  

 *  

 *  예제를 보자. 

 */

public class CommandLineExample {

public static void main(String[] args) {

System.out.println("First argument is " + args[0]);

// 필자는 Run Configuraion에서 argument로 java 라고 줬다.

}


}

result = First argument is java



반응형
by 발전소장 에르 :) 2017. 9. 25. 17:49
반응형

package com.strict;


/*

 * 우리가 부동 소수점 변수를 연산 수행하였을 떄, 

 * 어떠한 플렛폼에서든 동일한 결과를 얻을수있도 지켜주는 고마운 키워드가

 * 바로, 이번 시간에 다뤄볼  Java Strictfp Keyword이다.!

 * 

 * (구)플렛폼에서 (신)플렛폼으로 옴겨서 실행할 경우 정확성이 차이가날 수 가 있다.

 *  그 말인 즉슨, 큰 값을 계산할수록 오차범위가 커진다는것이다.

 *  게다가 오차범위가 크다는것은 혼란과 재앙을 야기하는데 충분한 요소인데 특히 

 *  건축, 의료 분야에서는 진짜로 Catastrophe!가 될 수가 있고 이는 

 *  충분히 인명사고로 이어질 수 있으며 금융에서는 인플레, 디플레, 등등 인류에게 영향을 

 *  미칠 수도 있다.( 물론 그럴일은 없겠지만)

 *  그래서 자바는 strictfp키워드를 지원함으로서 플렛폼마다 차이가 날 수 있는 오차범위를

 *  잡고자 꾀했다. 부동소수점의 고질적 문제가 해결된것이다.

 *  

 */

public class strict {


public strictfp class A { // 클래스에 사용가능하고,

private strictfp void A_Method() {

}// 메소드에 사용이가능하며,

}


protected strictfp interface B { // 인터페이스에도 사용할 수 있다.

}


}


class B {

// strictfp abstract void m(){ } 추상메소드에 사용이 불가하며,

// strictfp int da = 10; 변수에 붙을 수 없고

// strictfp B(){} 생성자에 붙을 수 읍당.


}



반응형
by 발전소장 에르 :) 2017. 9. 25. 17:40
반응형

package com.example.recursive;

/*

 * 재귀(귀납) - Recursive

 * 메소드가 자기 스스로를 끊임없이 호출하는 과정을 의미한다.

 * 그것을 재귀메소드라 칭한다.

 * 

 * syntax

 * 

 * returntype methodname(){

 * methodname();

 *  

 */


public class RecursiveExample {

static void p() {

System.out.println("P has called");

p();

}


public static void main(String[] args) {

p();

}

}  

몇번돌다가 에러를 뱉을겁니다.. 재귀하면 떠오르는 StackOverFlow!!

///////////////////////////////////////////////////////////////


package com.example.recursive;



public class RecursiveExample2 {


static int factorial(int n) {

// static method

if (n == 1)

return 1;

else

return (n * factorial(n - 1));

// 2이상의 값이 들어올 경우 위 구문이 진행된다./

//그리고 n-1한 값을 다시 factorial에 넣고 돌린다.

// 그러다 n이 1이 되면 1을 리턴합니다.

// 원리는 아래와 같습니다.

// factorial(5) 

                       factorial(4) 

                             factorial(3) 

                                 factorial(2) 

                                        factorial(1) 

                                               return 1 

                                    return 2*1 = 2 

                             return 3*2 = 6 

                             return 4*6 = 24 

                       return 5*24 = 120

//return안에서 factorial메소드가 파라미터가 1이 될때까지

//돌고난 후 return을 통해 값이 출력되는데 태엽을 상상하시면 이해가

// 쉬울것같습니다.

}


public static void main(String[] args) {

System.out.println("Factorial of 5 is: " + factorial(5));


}

}

//////////////////////////////////////////////////////////////////

public class RecursiveExample3 {


static int count = 0;


static void p() {

count++;

if (count <= 9) {

System.out.println("hello " + count);

p();

}

}


public static void main(String[] args) {

p();

}

}

result = 

hello 1

hello 2

hello 3

hello 4

hello 5

hello 6

hello 7

hello 8

hello 9


//////////////////////////////////////////////////////////////////

// 파보나치 수열!

public class RecursiveExample4 {

static int n1 = 0, n2 = 1, n3 = 0;


static void printFibo(int count) {

if (count > 0) {

n3 = n1 + n2;

n1 = n2;

n2 = n3;

System.out.print(" " + n3);

printFibo(count - 1);

}

}


public static void main(String[] args) {

int count = 15;

System.out.print(n1 + " " + n2);// printing 0 and 1

printFibo(count - 2);// n-2 because 2 numbers are already printed

}

}

result = 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377




반응형
by 발전소장 에르 :) 2017. 9. 25. 17:37
반응형

package com.access.array;


/*

 * 일반적으로 배열은 연속된 메모리 위치를 가진 비슷한 타입을 가진 요소의 집합(Collection)을 의미한다.

 * 자바에서의 배열은 유사한 데이터타입의 요소를 가지고있는 객체라 얘기한다.

 * 배열을 초기화할때 정해진 범위를 늘이거나 줄일 수 없다.

 * 한마디로 한번 생성되면 고정된 크기를 가진다.

 * 

 * 배열은 인덱스를 기초로 0번부터 시작한다. 물론 갯수를 셀 떄는 1번부터 시작한다.

 * 

 * 배열의 이점:

 * -코드의 간소화, 어떤 인덱스 위치에 있는 어떤 데이타든 접근이 가능하다.

 * 

 * 배열의 단점:

 * - 제한된 크기: 위에서도 언급했다싶이 한번 초기화할때 정해진 크기를 가지며 수정은 불가하다.

 * 이 문제를 해결하기위해서 Collection FrameWork가 사용되었다.

 *

 *  -1차원 배열, 다차원 배열으로 2가지 타입의 배열이있다.

 *  

 *  1차원 배열의 구문은 이렇다.

 *  dataType[] arr; (or)  

 *  dataType []arr; (or)  

 *  dataType arr[];  

 *  

 *  초기화는 이렇게한다.

 *  arrayRefVar=new datatype[size];  

 * 

 */

public class TestArray {

public static void main(String args[]) {


int a[] = new int[5];// 배열 선억식.

a[0] = 10;// 각 인덱스에 번호를 직접 지정하여 값을 넣을 수 있다.

a[1] = 20;

a[2] = 70;

a[3] = 40;

a[4] = 50;


// 그럼 이렇게 만든 배열을 출력해보자.

for (int i = 0; i < a.length; i++)// a.lenght는 배열의 길이를 나타낸다 (중요 많이사용함)

System.out.println(a[i]);


int[] b = { 1, 2, 3 };

int c[] = { 3, 2, 1 };

// 하지만 간편하게 이렇게 선언할수도있다.


for (int i = 0; i < b.length; i++) {

System.out.println(b[i]);

System.out.println(c[i]);

}

}

}

//////////////////////////////////////////

package com.access.array;


public class TestArray2 {


static void min(int arr[]) {

// 파리미터로 int타입 배열을 가지고있고,무엇보다 static이다.

int min = arr[0];

// 다른값들과 비교할 값이 필요함으로

// 입력으로 들어올 배열의 0번째 인덱스를 int min값에 집어넣는다.


for (int i = 1; i < arr.length; i++)

if (min > arr[i])

// 만약 min이 arr[1]보다 크면 min을 대신하고 배열의 길이만큼 반복한다.

min = arr[i];// 최종적으로 비교되 제일 낮은값이 min에 저장되게된다.

System.out.println(min);

// 프린트로 찍는다!.

}


public static void main(String args[]) {


int a[] = { 33, 3, 4, 5 };

min(a);// 이 부분 때문에 static을 선언한거라고 볼 수 있는데

// static은 최상위 우위로 로딩되기때문에 메인에서도 접근할 수가 있다.

// int a 배열을 min메소드의 파라미터로 넣는다.

// 그럼 그 값을 5번 라인으로 넘긴다.


}

}

//////////////////////////////////////////

package com.access.array;


/*  다차원 배열.

 * 매트릭스 형태로 컬럼과 로우로 구성된 배열을 일컫는다.

 * 구문은 아래와 같이 사용하여 정의할 수 있다.

 * 

 *  dataType[][] arrayRefVar; (or)  

dataType [][]arrayRefVar; (or)  

dataType arrayRefVar[][]; (or)  

dataType []arrayRefVar[];   

 *  

 *  3개의 로우와 3개의 컬럼을 가진 다차원 배열을 예로 만들어보자

 */

public class TestArray3 {


public static void main(String[] args) {


int[][] arr = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 },{10,11,12}};

for (int i = 0; i < 4; i++) { //칼럼의 갯수만큼 돌려주고,

for (int j = 0; j < 3; j++) { // 로우의 갯수만큼 돌려주

System.out.print(arr[i][j]+" ");

} //arr

System.out.println();

}

}


}

//////////////////////////////////////////

package com.access.array;

/*

 * java array의 클래스 이름은 무엇인가요?

 * 

 * 자바에서 배열은 객체입니다.

 * 

 */

public class TestArray4 {

public static void main(String args[]) {


int arr[] = { 4, 4, 5 };

// 배열을 하나 생성해주고,


Class c = arr.getClass();

// 클래스 타입 변수 c에 .getClass()메소드를 이용해서 리턴값인 클래스를 넣어주고, 

String name = c.getName(); 

// c의 이름을 가져와 스트링 변수에 담아서 출력하면,

System.out.println(arr); 

// 그냥 arr을 찍으면 저장된 주소값이 출력됩니다.

System.out.println(c);

System.out.println(name);

// int arr[]의 클래스이름을 알아낼수있답니다.

}

}

//////////////////////////////////////////

package com.access.array;


/*

 * 배열복사하기.

 * System class의 arraycopy 메소드를 이용해서, 배열을 복사할수있다.!

 * arraycopy메소드의 구문은 아래와 같은데, 

 * 

 * public static void arraycopy(  

Object src, int srcPos,Object dest, int destPos, int length  

)   

꼭 메소드를 통해서만 복사가 가능한걸까?

 */

public class TestArrayCopyDemo {

public static void main(String[] args) {

char[] copyForm = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'd' };

// 문자열 타입 배열을 만들고 안에 값을 집어넣느다.

char[] copyTo = new char[7];

// 그리고 복제가 될 배열 하나를 만든다.


System.arraycopy(copyForm, 2, copyTo, 0, 7);

// System의 메소드인 arraycopy를 타이핑 후 적절히 파라미터를 준다.

/*

* @param src 소스를 줄 배열

* 

* @param srcPos 소스 배열에서 복제하기 시작할 인덱스 번호

* 

* @param dest 소스를 받게 될 배

* 

* @param destPos 몇번인덱스에서부터 소스를 받을 것인가.

* 

* @param length destPos에서부터 얼마만큼 길이의 데이터를 받을 것인가.

* 

*/

System.out.println(copyTo);


int[] a = { 1, 2, 3 };

int[] b = a;

char[] c = { 'a', 'b', 'c' };

char[] d = c;


for (int e = 0; e < a.length; e++) {

System.out.print(a[e]);

System.out.print(b[e]);

}

System.out.println();

for (int e = 0; e < a.length; e++) {

System.out.print(c[e]);

System.out.print(d[e]);

}

}

}

//////////////////////////////////////////

package com.access.array;


/*

 *  다른 두 배열을 더할 수도 있을까?

 *  복제를 보아하니, 왠지 가능할거같다. 

 *  

 */

class TestArray5 {

public static void main(String args[]) {

// 일단 재료가 될 두 행렬을 생성해주자.

int a[][] = { { 1, 3, 4 }, { 3, 4, 5 } };

int b[][] = { { 1, 3, 4 }, { 3, 4, 5 } };

// 2, 6, 8 6, 8, 10이 되어야한다.


// 두 배열의 합을 저장할 배열을 만들어주자.

int c[][] = new int[2][3];


// 그리고는 반복문을 통해 두 배열을 c로 집어넣어주자.

for (int i = 0; i < 2; i++) {

for (int j = 0; j < 3; j++) {

c[i][j] = a[i][j] + b[i][j];

System.out.print(c[i][j] + " ");

}

System.out.println();// new line

// 딱히 설명할게 없다.

}

}

}




반응형
by 발전소장 에르 :) 2017. 9. 25. 00:30
반응형

package com.example.call;


/*

 * Call by Value and Call by Reference In Java.

 * 자바 호출에는 값을 호출할 순 있지만 참조객체를 직접 호출할 수는 없다.

 * 이게 무슨말이고하면!

 * 값을 전달하는 메소드를 호출한면, 값호출(Call Of Value)을 수행한것이고,

 * 호출된 메소드에서 변경된 값은 적용되지가않는다.

 * 무슨 말인지 살짝 모호할텐데, 예제를 보자 

 */

public class Operation {

int data = 50; // field


void change(int data) { // method

data = data + 100;

// this.data = data + 100 이 아니다.

// 오해하지말

// 메소드 내부의 변수 값은 변하지않고, 오직 로컬변수의 변경될 수 있다.

// 호출된 메소드의 파라미터인 data를 넘겨받아 그 값에 100을 더하여 초기화하는데

// 지켜볼건 이렇게해서 data가 가지고있는값이 바뀌느냐?

}


public static void main(String args[]) {

Operation op = new Operation();

// 객체를 만들어주자.

System.out.println("before change " + op.data);

// 변경전


op.change(500);

// 파라미터를 통해 필드값 50을 무시하고 값을 집어넣었을

System.out.println("after change " + op.data);


op.data = 99; // 로컬 변수에 직 접근하였을때

System.out.println("aproaching to local var " + op.data);


}

}

before change 50

after change 50

aproaching to local var 99


package com.example.call;


/*

 * 참조호출의 경우에 호출된 메소드를 변경한다면, 원래 값이 변경될 수 있다.

 * 어떤 원시타입 값을 주는대신에 객체를 전달한다면! 원래값이 바뀌게되는데

 * 밑에 예제에서는 값을 대신해 객체를 전달하였다.

 * 

 *

 */

class Operation2 {

int data = 50;


void change(Operation2 op) {

op.data = op.data + 100;

// op의 타입을 보자, 객체 Operation2이 타입으로 선언되있다는 말은

// 원시타입이 아닌 참조타입이라는 얘기이다. 

// 참조호출을 통해 로컬변수로 접근할 수 있게된다.

}


public static void main(String args[]) {

Operation2 op = new Operation2();


System.out.println("before change " + op.data); //50

op.change(op);// 50 + 100

System.out.println("after change " + op.data);


}

}

before change 50

after change 150



반응형
by 발전소장 에르 :) 2017. 9. 20. 02:35