머리가 나빠서 분명히 배우고 이해했음에도 누군가 물어보면 머뭇머뭇 퓨ㅠㅠㅠ


정리해놓고 충분히 계속 인지하고 있어야 겠다.


먼저


◆JVM



java virtual machine의 약자이다. 직독 하자면 '자바가상머신' 자바의 큰 특징 중 하나다.


자바는 운영체제에 의존적이다. 즉, 윈도우 jvm과 유닉스 jvm이 다르다는 것이다. 그렇다면 윈도우에서 만든 자바 파일은 유닉스 혹은 리눅스에서는 쓰지 못하는 것일까?


그걸 가능케 하는 것이 jvm의 역할이다. 한번 컴파일된 코드는 서로 다른 jvm이더라도 돌아가도록 설계가 되어있다. ( 플랫폼 독립적)


jvm 열일한다. 그뤠잇~


본격적으로 JVM구조에 대하여 알아보도록 하자.


(출처 : https://ko.wikipedia.org/wiki/자바_가상_머신)



JVM은 크게 3가지로 나뉘어 진다.


1) Class loader

먼저 Class loader란 런타임시점(실행)에서 클래스파일을 로딩(메모리에 적재)하도록 도와준다.


2) Runtime Data Access

메모리에 관련된 부분으로서 위에서 메모리에 적재를 받은 공간안에


-PC 레지스터

-Stack 영역

-Method 영역

-heap 영역

-네이티브 메소드 스택


5개의 영역으로  나뉜다.


3) Execution Engine


위에 2개가 적재를 담당한다면 본격적으로 실행을 도와주는 친구이다.


Class Loader -> 메모리 적재

Runtime Data Areas -> 각 영역 관리

Execution Engine -> 자바 바이트 코드 읽고 실행




◆JRE


(java runtime enviroment) = 자바 실행 환경


위에 JVM에서 실행을 할 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있다. 


◆JDK


java development kit


jre외에 개발을 위해 필요한 도구들을 가지고 있다. 


이 부분이 컴파일러를 들고 있고 자바 코드를 클래스 파일로 만들어 준다.



출처 :

jvm - https://medium.com/@lazysoul/jvm-%EC%9D%B4%EB%9E%80-c142b01571f2

jvm,jre,jdk : https://wikidocs.net/257



자바에서 암호화 시키는 법


1) 기존에 자바에서 제공해주는 MesageDigest




2) apache의 codec 사용


http://commons.apache.org/proper/commons-codec/


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

release에서 최신 버전 다운 받고  압축을 푼 다음 build path에 라이브러리를 추가시킨다.



'Programming > JAVA' 카테고리의 다른 글

twitter4j를 이용하여 twitter 검색 api를 써보자  (0) 2018.01.13
dynamic query vs parameter query  (0) 2018.01.12
자바 암호화시키기  (1) 2018.01.12
[자바]학점 변환기 파일  (0) 2018.01.04
자바 웹 크롤러 예제  (0) 2017.10.27
자바 설치하기(리눅스)  (1) 2017.08.23
  1. binny 2018.01.13 16:38 신고

    오 이런 방법도 있었군요 비밀번호 저장할때 좋을것 같네요 감사합니다 ㅎㅎ

conversion.exe



4.3 만점 기준으로 작성한 파일입니다.

*자바가 깔려있어야 합니다요~~~


처음 과목수를 입력하시고



학점 짜리인지 입력



맞은 학점 입력


a+라면 ▶ ap

a ▶ a

a- ▶ am

(이런식으로 입력)





※예시화면




'Programming > JAVA' 카테고리의 다른 글

dynamic query vs parameter query  (0) 2018.01.12
자바 암호화시키기  (1) 2018.01.12
[자바]학점 변환기 파일  (0) 2018.01.04
자바 웹 크롤러 예제  (0) 2017.10.27
자바 설치하기(리눅스)  (1) 2017.08.23
MS-SQL(데이터베이스) 연동하기  (0) 2017.07.07

C# 언어 특징

  • 객체 지향 언어
  • C언어의 기본적인 기능 , C++로부터의 객체지향 특성을 상속받음
  • 사용자 인터페이스를 쉽게 만들 수 있음.

대충 특징만 보아도 java와 매우 흡사한 부분이 있다는 것을 알수 있습니다. 그럴수밖에 없는 것이 MS에서 자바를 잡기 위해 만든 언어가 바로 C#이기 때문입니다. 비슷하긴 하지만 똑같지는 않습니다. 가장 큰 차이점은 C#은 닷넷 프레임워크 환경에서 돌아가죠 (java는 JVM)

 

 

위에서는 C#의 전체적인 특징을 짚어보았는데요 java와 매우 흡사한 만큼 작은 문법적인 부분외에는 거의 비슷하다 보면 되겠습니다. 하지만 위에 말했듯이 C#은 자바보다 뒤에 나와서 java보다 더 많은 기능들을 제공한다고 합니다. 대신 java는 먼저 나온만큼 제공되는 라이브러리나 오픈 소스 자료의 수가 자바 쪽이 좀 더 많은 것 같습니다.

 

프로그래밍 언어가 뭐 거기서 거기겠지유 ㅠ

 

 

 

 

 

 

프로젝트명

 쇼핑몰 데이터베이스

 개 발 언 어

 Java

프로젝트 종류 

개인프로젝트 

 개 발 도 구

Eclipse neon, MS-SQL

 프로젝트 기간

 2017.05.17 ~ 2017.06.22

 개 발 종 류

 쇼핑몰 데이터베이스 설계 및 연동

프로그램 요약 

 

◆프로그램 소개


  - 자신의 설계로 쇼핑몰 데이터베이스를 구축하고 자바와 연동함


◆개념적 데이터 모델

 

 

◆논리적 데이터 모델


 핵심 소스

1) 자바 연동

   [참고해주세요] http://monny.tistory.com/4

 

 

 

'Programming > 프로젝트' 카테고리의 다른 글

(jsp)공모전 도우미 게시판  (0) 2018.02.02
(C#)리듬게임  (0) 2017.12.16
(C#)물건관리시스템  (0) 2017.12.16
(자바) 챗봇 프로젝트  (0) 2017.10.23
(자바)쇼핑몰 데이터베이스 프로젝트  (0) 2017.08.28
(자바)채팅 프로그램 프로젝트  (2) 2017.08.27

 

 

 

 

프로젝트명

엠오채팅 

개 발 언 어 

Java 

프로젝트 종류 

개인 프로젝트 

개 발 도 구 

Eclipse neon 

프로젝트 기간 

2017.05.28 ~ 2017.06.20 

개 발 종 류 

나만의 채팅 만들기 

프로그램 요약 

 

◆프로그램 소개


  -어떠한 가입과정 없이 아이디만 구별 가능하다면 채팅할 수 있고, 자신만의 주제로 방 을 만들어 얘기 할 수 있으며 파일 업로드/ 다운로드가 가능한 채팅 프로그램입니다. 


◆시퀀스 다이어그램


  -[전체 채팅 흐름도]



  -[파일 서버 흐름도]

 핵심 소스

 1)파일 업로드 / 다운로드


설명 : 파일을 전송하거나 받을 때 소켓을 닫아주지 않으면 파일스트림 또한 닫히지 않는다. 때문에 통신할 소켓을 닫아줄 순 없으니 따로 파일 서버와 클라이언트를 만들어서 또 다른 소켓을 통해 파일을 전송/다운 받는다.


2)방 생성 및 방 통신


설명 : 방을 생성하게 되면 대기방에서 해당 ID를 삭제 해주고 Room클래스 안에 있는 유저리스트에 집어 넣어준다. 그리고 그 생성된 Room객체를 룸 리스트에 추가시켜 준다.

 

 

 

 


 

'Programming > 프로젝트' 카테고리의 다른 글

(jsp)공모전 도우미 게시판  (0) 2018.02.02
(C#)리듬게임  (0) 2017.12.16
(C#)물건관리시스템  (0) 2017.12.16
(자바) 챗봇 프로젝트  (0) 2017.10.23
(자바)쇼핑몰 데이터베이스 프로젝트  (0) 2017.08.28
(자바)채팅 프로그램 프로젝트  (2) 2017.08.27
  1. 컴공새내기 2017.08.27 22:59

    혹시 소스 모두 받을 수 있을까요??ㅠ

  2. 모종 2017.08.27 23:02 신고

    전부다 드릴수는 없지만 도움이 필요한 부분에 한해서 조언드릴 수 있을 것 같습니다!!

먼저 collections.synchronized___이란...


컬렉션(List, Set, Map 등등)을 싱글 스레드 환경에서 사용하다 멀티 스레드 환경으로 전달할 때 컬렉션을 동기화(synchronized) 된 컬렉션으로 리턴해주는 메소드


->한마디로 여러개의 스레드가 하나의 컬렉션에 접근할 때 생기는 오류를 동기화시킴으로써 해결해주는 메소드이다.



리턴 타입

  메소드(매개 변수) 

 설명

 List<T>

 synchronizedList(List<T> list) 

 List를 동기화된 List로 리턴

 Map<K,V>

 synchronizedMap(Map<K,V> map)

 Map을 동기화된 Map으로 리턴

 Set<T> 

 synchronizedSet(Set<T> s)

  Set을 동기화된 Set으로 리턴



 

여기서 synchronizedMap은 Map 컬렉션이 멀티 스레드에 안정되게 하기 위한 메소드이다. 

하지만, 위와 같이 동기화를 시켰을 때 하나의 스레드가 전체 컬렉션의 모든 자원 잠금시키기 때문에 전체적으로 빠르게 처리하지는 못한다.  이런 현상을 해결하기 위해 나온 것이 바로 ConcurrentHashMap 이다.


ConcurrentHashMap 은 멀티 스레드에도 마찬가지로 안전하면서도 부분 잠금을 사용하기 때문에 멀티 스레드가 요소를 병렬적으로 처리할 수 있다. , 이용하려는 자원만 잠금하고 나머진 다른 스레드가 접근할 수 있도록 하는 것이다.

'Programming > JAVA' 카테고리의 다른 글

자바 암호화시키기  (1) 2018.01.12
[자바]학점 변환기 파일  (0) 2018.01.04
자바 웹 크롤러 예제  (0) 2017.10.27
자바 설치하기(리눅스)  (1) 2017.08.23
MS-SQL(데이터베이스) 연동하기  (0) 2017.07.07
ConcurrentHashMap vs collections.synchronizedMap  (1) 2017.05.17
  1. binny 2017.05.18 19:05

    ㅎㅅㅎ 좋은정보 감사합니당

+ Recent posts