라벨이 JAVA인 게시물 표시

JAVA JVM 옵션에 대한 이해

개요 JVM 구동 옵션들은 사실 무진장 많다 그중 N4에서 사용할 수 있는 xss xmx xms 에 대해 알아본다 Contents -XSS 옵션 JAVA에서 쓰래드가 갖는 스택의 최대 크기를 설정한다. 즉 커지면 커질수록 한 쓰래드가 갖는 메모리 크기는 커지지만  시스템이 지원할 수 있는 쓰래드 갯수는 줄어든다. -XMX 옵션 JVM에서 프로세스가 사용할 수 있는 최대 메모리의 크기를 설정 -XSS 옵션 JVM에서 프로세스가 시작과 동시에 할당되는 메모리의 양을 설정 java -Xms256m -Xmx2048m 위의 예제는 Java프로세서가 256M의 메모리로 시작하고 최대 2048M의  메모리를 사용할 수 있음을 설정한다. 참조 Tech Doc: https://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=options-xss-option Article: https://itecnote.com/tecnote/java-what-are-the-xms-and-xmx-parameters-when-starting-jvm/ Forum: https://www.edureka.co/community/162467/what-are-the-xms-and-xmx-parameters-when-starting-jvm

[JAVA] InnerClass / OuterClass , 중첩클래스

개요 중첩 클래스 클래스 내부에 클래스를 만드는 것을 의미 프로그래밍을 할 때 여러 군데서 사용하는 클래스가 아니라면 파일을 새로 만들거나 코드의 아래부분으로 내려서 만들지 않고 바로 만들어서 바로 쓸수 있도록 하는 개념 경우에 따라서는 객체를 생성할 수 있는 부분이 클래스를 설계한 부분으로 한정 되는 경우도 있다. 클래스 내부에 만든 클래스를 Inner Class라고 부르며 Inner클래스를 감싸고 있는 클래스를 Outer Class라고 부른다. Contents 일반 중첩 클래스 ⊙ 클래스 내부에 클래스를 만들어서 사용하는 경우 ⊙  Inner 클래스의 객체를 만들기 위해서는 반드시 Outer클래스의 객체를 생성하고 이를 통해 Inner클래스를 만들어야함. ⊙  Inner클래스는 Outer클래스의 맴버에 접근할수있지만 Outer클래스는 Inner클래스의 멤버에 접근할수없다. Inner클래스의 멤버는 Outer클래스의 객체가 생성되어 있다는 가정하에 사용하므로 접근이 가능하지만 Outer클래스는 Inner클래스의 객체의 생성과 관계가 없으므로 Inner클래스에 대한 접근이 자유롭지 못하다. static 중첩 클래스 ⊙ 일반 중첩클래스에서 Inner클래스가 static으로 정의된 경우 ⊙ Inner 클래스가 static으로 정의 되어 있어 Outer클래스의 객체 생성 없이 바로 객체 생성이 가능 ⊙ Inner 클래스에서는 Outer클래스에 정의된 멤버중에 static 멤버만 접근이 가능. Outer클래스의 객체생성없이 바로 Inner클래스의 객체를 생성하므로 Outer클래스의 객체가 생성되지 않았다는 가정하여 개발을 해야한...

[JAVA] Timer, TimerTask, Thread 이용하기

개요 10초 후에 A 값을 출력하고 B 값을 출력하고 싶을 때 프로그램 객체에서 이 코드를 사용할 수 있다. Using Timer and TimerTask  프로그래밍하기 전에 준비 import java.util.TimerTask Source code public void onExecute() {     setAOValue(new BStatusNumeric(100));      Timer tmr = new Timer(); TimerTask tmr_task = new TimerTask() {     public void run()     {          //do it code          setAOValue(new BStatusNumeric(200));     } } tmr.schedule(tmr_task,5000); //tmr.schedule(tmr_task,5000,2000) : Operative every two seconds, after 5 seconds. }// end of onExecute() 결과 이 코드는 출력 100을 먼저 작동하고 5초 후에 출력 200을 출력한다. 스레드 사용 프로그래밍하기 전에 준비 nothing special. Source code public void onExecute()    throws Exception {   setNormal(); } public void setNormal() {   // Create a new thread, with the starting point set as the current program  object.   Thread thread = new Thread(this, getProgram().getName());    ...

ByteOrder, LittleEndian, BigEndian with Honeywell Webs8000

이미지
개요 Little-Endian, Big-Endian CPU가 내부적으로 데이터를 처리하는 순서에따라서 바이트오더가 나뉘어진다.  바이트오더는 Little-Endian과 Big-Endian으로 나뉘어진다. Little-Endian  - intel X86계열 CPU  - AMD계열 CPU  - EDC계열 CPU Big-Endian  - IBM  - ARM  - Motorola Honeywell Webs8000 CPU ARM@Cortex-a8 즉 Big-Endian을 기본으로 사용함을 알 수 있다.  <Honeywell Webs8000 CPU Spec> 그렇다면 little-Endian을 사용하는 장비로부터 정상적인 데이터를 취득하기위해서는 바이트오더 변경이 필요하다.  Change ByteOrder in JAVA 1 2 3 4 5 6 7 8 public   static   int  getBigEndian( byte [] v) throws  Exception{ int [] arr  =   new   int [ 4 ]; for ( int  i = 0 ;i < 4 ;i + + ){ arr[i]  =  ( int )(v[ 3 - i]  &   0xFF ); } return  ((arr[ 0 ]  < <   24 )  +  (arr[ 1 ]  < <   16 )  +  (arr[ 2 ]  < <   8 )  +  (arr[ 3 ]  < <   0 )); }   Colored by ...

NiagaraFramework 개발환경 구축하기

이미지
개요 Niagara Framework에 대한 개발환경 구축 방법   본 문서는 " A non-programmer's guide to setting up a N4 development environment with Eclipse IDE" https://www.niagara-community.com/s/feed/0D5D000005DPI4qKAH?u=005D0000005RPu2&tab=sfdc.ProfilePlatformFeed&fId=0D5D000005DPI4q 위의 링크를 번역하여 요점 정리한것이다. Eclipse와 IntelliJ에 대한 개발환경 구축방법을 각각 정리한다. (Eclipse와 IntelliJ 의 아이콘을 구경하라는 취지로... 별의미 없음) Eclipse 개발환경 구축 사전준비  Java Developer Kit(JDK) : http://www.oracle.com/technetwork/java/javase/downloads/index.html Eclipse IDE for java Developers : http://www.eclipse.org/downloads Gradle 다운로드 gradle Download : http://gradle.org/gradle-download/ 하드디스크에 압축해제. (바이너리용으로도 가능) 환경변수 추가 : GRADLE_HOME 제어판->시스템->고급시스템설정->환경변수 시스템변수 추가 : GRADLE_HOME , d:\gradle-2.12 (압축을 풀어놓은 폴더경로) GRADLE_HOME/bin 안에 PATH 환경설정 제어판->시스템->고급시스템설정->환경변수 시스템변수의 Path에 "D:\gradle-2.12\bin;" 추가 GRADLE에 대한 설치 확인 cmd 실행 후 "gradle -v" 를 실행하여 버전을 확인한다. ...

Maria DB JDBC 기본 구문

MariaDB 와 JAVA 연동을 위한 기본 구문  참고 소스 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 import  java.sql.Connection; import  java.sql.DriverManager; import  java.sql.PreparedStatement; import  java.sql.ResultSet; import  java.sql.SQLException; public   class  MainEntry {    public   static   void  main( String [] args) {     Connection con  =   null ;     PreparedStatement pstmt  =   null ;       ResultSet rs  =   null ;      try  {           Class.forName( "org.mariadb.jdbc.Driver" );           con  =  DriverManager.getConnection( "jdbc:mariadb://100.100.100.7:3306/dbname" , "userId" , "password" ); ...

IntelliJ 에서 Eclipse Project Import 하기

이미지
Eclipse로 개발된 프로젝트를 IntelliJ에서 개발하고 싶을때가 있다. 흔하지않지만 그럴수도 있다. 이때 인텔리제이의 환경설정에 대한 문서를 작성하고자 한다. 목적 : Eclipse로 개발된 프로젝트를 IntelliJ에서 개발하고 싶다.  (Goal : Using Eclipse projects with IntelliJ) 이미 IntelliJ와 Eclipse는 설치 되어있는것으로 가정하에 포스팅 한다. (하지만.. 친절하게 링크정돈 걸어주겠어... 당신의 검색시간을 2초정도 줄여주지...) IntelliJ Download : Https://www.jetbrains.com/idea/download/ Eclipse Download : Https://www.eclipse.org/downloads/ 방법요약.  (Summary that How to do that) 1. "Welcome to IntelliJ IDEA" 창에서 "Import Project" 선택 (1. Choice "Import Project" from window that "Welcome to IntelliJ IDEA") 2. Eclipse로 제작된 프로젝트 선택 (2. Choice project made by Eclipse) <Select project made by Eclipse> 3. Import Project from external model 에서 Eclipse 선택 (3. Choice Eclipse in the window that "Import Project from external model") <Choice Eclipse and click Next> <Just click Next> <Select program and click next> <click next> <Add your JDK each Version for compile an...