반응형

1. 변수 작성 규칙

첫 번째 글자는 문자이거나 '$', '_'이어야 하고 숫자로 시작할 수 없음

첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 하는 것이 관례

 

2. 변수값 저장

리터럴 : 소스 코드 내에서 직접 입력 된 값 

상수 : 값을 한 번 저장하면 변경할 수 없는 변수

 

3. 로컬 변수

메소드 블록 내에서 선언된 변수.

메소드 실행이 끝나면 메모리에서 자동으로 없어진다.

 

4. 자바는 기본적으로 정수 연산을 int 타입으로 수행한다.

byte타입 또는 short 타입의 변수를 연산하면 int 타입으로 변환된 후 연산되고, 연산의 결과 역시 int 타입이 됨

 

5. 변수가 저장할 수 있는 값의 범위를 초과해서 값이 저장될 경우 쓰레기값이 변수에 저장됨

ex) byte 변수는 127을 넘어서면 최소값인 -128부터 다시 저장됨

 

6. long 타입의 변수를 초기화 할 때는 정수값 뒤에 'L'을 붙이면 됨

 long var1 = 1000000000000L;

 

7. 자바는 실수 리터럴의 기본 타입을 double로 간주한다.

따라서 실수 리터럴을 float 타입 변수에 저장하려면 리터럴 뒤에 'f'를 붙이면 됨

float var1 = 3.14f;
double var2 = 3.14;

 

8. float 보다 double이 약 두 배의 자릿수가 배정되어 있으므로 더 정밀한 값을 저장할 수 있다.

9. 정수 리터럴에 10의 지수를 나타내는 E 또는 e를 포함하고 있으면 실수 타입 변수에 저장해야 한다.

int var1 = 3000000;
double var2 = 3e6;
float var3 = 3e6f;
double var4 = 2e-3;

 

10. 변수 타입의 최대값 상수와 최소값 상수를 알아보는 함수

기본 타입

최대값 상수

최소값 상수

byte

Byte.MAX_VALUE

Byte.MIN_VALUE

short

Short.MAX_VALUE

Short.MIN_VALUE

int

Integer.MAX_VALUE

Integer.MIN_VALUE

long

Long.MAX_VALUE

Long.MIN_VALUE

float

Float.MAX_VALUE

Float.MIN_VALUE

double

Double.MAX_VALUE

Double.MIN_VALUE

 

11. int 값을 실수 타입으로 안전하게 변환 시키려면 double 타입을 사용할 것.

float : 부호 1비트 + 지수 8비트 + 가수 23비트

double : 부호 1비트 + 지수 11비트 + 가수 52비트

int의 크기는 32비트이므로 double의 가수 52비트 보다 작기때문에 어떠한 int 값이라도 정밀도 손실 없이 double 타입으로 변환될 수 있다. 

int num1= 123456780;
// int 값을 float타입으로 자동변환
float num2 = num1;
//123456780은 23비트로 표현할 수 없기 때문에 근사치로 변환, 정밀도 손실 발생
반응형
반응형
var test=""; if(test >=0) console.log("ok"); console.log(Number(test));
// 결과값 : ok 0

var test=null; if(test >=0) console.log("ok"); console.log(Number(test));
// 결과값 : ok 0

var test ="a"; console.log(Number(test));
//결과값 : NaN

 

 

변수값이 null 이거나 "" 인데 

0하고 비교 연산을 하면 

0처럼 취급되는 것..... 왜그런지 생각해보니..

 

연산자 사용시 null은 아스키코드값이 0인것..

Number로 치환해봐도 0인것... 

주의해야겠음..

 

** 자바는 정수 연산일 경우 int타입을 기본으로 한다.

크기가 4byte보다 작은 타입(byte,char,short)은 int로 변환된 후 연산이 수행된다.

따라서 연산의 결과도 int 타입이 된다.

** 서로 다른 타입의 피연산자가 있을 경우느 두 피연산자 중 크기가 큰 타입으로 자동변환된 후 연산을 수행한다.

 

반응형
반응형

git clone으로 내려받은 프로젝트를

내 repository 에 올리고 싶었음

vscode 사용


1. 내 github에서 새 repository 생성 및 주소 복사

2. 터미널에서 remote url 확인

명령어 : git remote -v

3. remote 주소 변경

명령어 : git remote set -url origin "repository 주소"

주소 변경뒤 다시 git remote -v로 확인하면 바뀌어 있음!

 

4. push로 프로젝트를 업로드 해준다

명령어 : git push

 

반응형
반응형

1. 시작하기

[root@dbdb]# su -l oracle

[oracle@dbdb ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 6 09:26:13 2021

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> connect /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area 5016387584 bytes
Fixed Size                  2027640 bytes
Variable Size             956305288 bytes
Database Buffers         4043309056 bytes
Redo Buffers               14745600 bytes
Database mounted.
Database opened.

SQL> exit
Disconnected from Oracle Database 10g Release 10.2.0.1.0 - 64bit Production
[oracle@dbdb ~]$ lsnrctl start

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 06-APR-2021 09:26:37

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Starting /opt/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /opt/oracle/product/10.2.0/db_1/network/log/listener.ora
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=kdb2)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbdb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                06-APR-2021 09:26:37
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /opt/oracle/product/10.2.0/db_1/network/log/listener.ora
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbdb)(PORT=1521)))
Services Summary...
Service "dbdb" has 1 instance(s).
  Instance "dbdb", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully


2. 종료

[root@dbdb]# su -l oracle

[oracle@dbdb ~]$ lsnrctl stop

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 06-APR-2021 09:24:45

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbdb)(PORT=1521)))
The command completed successfully

[oracle@dbdb ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 6 09:25:05 2021

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> connect /as sysdba
Connected.
SQL> shutdown abort
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 10g Release 10.2.0.1.0 - 64bit Production

반응형
반응형
function func1(data){
    var str =[];
    $.ajax({
		url: '//'
		type: 'GET',
		data: data,
		success: function(r) {
			$.each(r.data, function(a,b) {
            str.push(a,b);
            })
  		}
    })
      console.log(str);
 }

ajax로 불러온 값으로 csv 파일 만들려고...

function 안에서 선언한 변수에..

ajax로 값을 가져와서 담고...

ajax 밖에서 값을 찍어봐도 도대체가 안찍히는거......

 

ajax 에서 전역변수에 값을 담을 땐...

async:false 를 추가하도록 하자...

function func1(data){
    var str =[];
    $.ajax({
		url: '//'
		type: 'GET',
		async:false,
		data: data,
		success: function(r) {
			$.each(r.data, function(a,b) {
            str.push(a,b);
            })
  		}
    })
      console.log(str);
 }
반응형
반응형
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class App {
    public static void main(String[] args) throws Exception {
        System.out.println("Hello, World!");
        String s;
        Process p;
        try {
        	//이 변수에 명령어를 넣어주면 된다. 
            String[] cmd = {"/bin/sh","-c","ps -ef | grep tomcat"};
            p = Runtime.getRuntime().exec(cmd);
            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            while ((s = br.readLine()) != null)
                System.out.println(s);
            p.waitFor();
            System.out.println("exit: " + p.exitValue());
            p.destroy();
        } catch (Exception e) {
        }
    }
}

 

실행할 명령어를 String[] 타입이 아니라

String cmd = "ls -al"; 

처럼 String 으로도 넣을 수 있는데...

명령어에 | 파이프가 들어가는 경우엔... 실행이 안 되었다..

그래서 찾아본 결과.. String[] 을 이용하면 된다고 해서 해보니.. 됐음.. 

String[] cmd = {"/bin/sh","-c","ps -ef | grep tomcat"};

  • /bin/sh -c : 그 뒤에 오는 문자열을 실행하라는 의미 

 


  • 파이프가 들어가는 명령어 실행 관련하여 참조한 링크 
 

How to make pipes work with Runtime.exec()?

Consider the following code: String commandf = "ls /etc | grep release"; try { // Execute the command and wait for it to complete Process child = Runtime.getRuntime().exec(commandf); ...

stackoverflow.com

 

반응형
반응형

System.out : PrintStream 타입의 필드이며 OutputStream타입으로 변환해서 사용할 수 있음

write 메소드들을 이용하여 콘솔에 출력


1. write() 를 사용 

한 문자(1바이트로 표현가능한 숫자, 영어, 특수문자)만 출력 

 


2. write(byte[] b) 나 write(byte[] b, int off, int len) 사용

한글을 출력하려면 우선 한글을 바이트 배열로 얻은 다음, 위처럼 출력하면 된다.


System 클래스의 out 필드는 원래 PrintStream 타입의 필드이므로

PrintStream의 print() 또는 println() 메소드를 사용하면 더 편하다.

이것이 우리가 아는 System.out.println... 

 

반응형

'코딩 관련 > Java' 카테고리의 다른 글

[JAVA] 변수 헷갈리는 내용 정리  (0) 2021.04.22
[JAVA] linux Shell 명령어 실행  (0) 2021.03.25
[JAVA] 콘솔 입력. System.in  (0) 2021.03.24
[JAVA] Writer  (0) 2021.03.24
[JAVA] Reader  (0) 2021.03.21
반응형

System.in : InputStream 타입의 필드

read메소드들로 입력된 값을 읽을 수 있다.


1. read() 를 사용

read()를 사용하면 아무리 입력해도 처음 한 문자(1바이트.. 숫자, 영어, 특문)밖에 못 읽음.. 

한글은 못 읽는다.

read()메소드가 있어야 입력한 키가 표시되는 것 같다...

 


2. read(byte[] b)나 read(byte[] b, int off, int len) 을 사용

  • byte 배열의 길이 지정 시 

영어 한 문자는 1바이트, 한글 한 문자는 2바이트를 차지하는 것 고려해서 지정

 

  • 바이트 배열에 저장된 문자를 String 클래스 생성자를 이용하여 문자열로 변환할 때 길이-2인 까닭 

마지막 두 바이트는 Enter키에 해당하는 13(캐리지리턴), 10(라인피드) 이므로 이를 제외하기 위해.

반응형

'코딩 관련 > Java' 카테고리의 다른 글

[JAVA] linux Shell 명령어 실행  (0) 2021.03.25
[JAVA] 콘솔 출력. System.out  (0) 2021.03.24
[JAVA] Writer  (0) 2021.03.24
[JAVA] Reader  (0) 2021.03.21
[JAVA] OutputStream  (0) 2021.03.21
반응형

Writer : 문자 기반 출력 스트림의 최상위 클래스

<Writer 클래스를 상속받는 클래스>

  • FileWriter
  • BufferedWriter
  • PrintWriter
  • OutputStreamWriter

1. write(int c)

한 문자씩 출력

write 메소드 사용 후 

flush()나 close() 를 해야 정상적으로 파일에 출력이 된다.

OutputStream은 close()를 안 해도 출력이 되던데 

왜 그런건지 잘 모르겠다.


2. write(char[] cbuf)

char[] 배열의 모든 문자를 출력


3. write(char[] c, int off, int len)

c[off] 부터 len개의 문자를 출력


4. write(String str)


5. write(String str, int off, int len)


 

writer 사용시엔 꼭 flush와 close를 사용하자.... 

반응형
반응형

Reader : 문자 기반 입력 스트림의 최상위 클래스

<Reader 클래스를 상속받는 클래스>

  • FileReader
  • BufferedReader
  • InputStreamReader

test.txt file 내용

ABCD


1. read()

입력 스트림으로부터 한 개의 문자를 읽고 int 타입으로 리턴한다.

리턴한 int 값을 char 타입으로 변환하면 읽은 문자를 얻을 수 있다. 

읽을 게 없으면 -1을 반환함.


2. read(char[] cbuf)

매개값으로 주어진 문자 배열의 길이만큼 문자를 읽고 배열에 저장

읽은 문자 수를 리턴함.

많은 양의 문자를 읽을 때는 이 메소드를 사용하면 좋다.

읽을 게 없으면 -1을 반환함


3. read(char[] cbuf, int off, int len)

입력 스트림으로부터 len개의 문자만큼 읽고 매개값으로 주어진 문자배열 cbuf[off]부터 len개까지 저장한다. 

읽은 문자 수를 리턴함.

읽을 게 없으면 -1을 반환함


close()

reader를 더이상 사용하지 않을 경우에 close()를  호출해서 

reader에서 사용했던 시스템 자원을 풀어준다.

반응형

+ Recent posts