티스토리 뷰

Study

Java(자바) 관련

메디츠 2022. 12. 29. 12:23
반응형

if(s.equalsIgnoreCase("test"))

// 대소문자 무시

equals는 대소문자 구분.

equalsIgnoreCase는 대소문자 구분안함.

null 객체로 .toString()을 하면 에러가 남

if(name.equals(""))

String 값 비교 equals 사용

boolean b = Boolean.valueOf(yourObject.toString())

// object to boolean

thresholdObj.setSendClearStatus(thSendClr.equalsIgnoreCase("true"));

// string 비교후 boolean 리턴

String success = (String)status.get("success");

if(!success.equals(""))

message = "success";

else

message = "failure";

// get한 값이 null일때 타지를 못함.

int 초기값 0. null 아님.

if((String)status.get("success") != null)

success = (String)status.get("success");

// null 체크 후에 get

Character.toString((char)i);

// int to ascii

java에서 리눅스의 특정명령어 실행할때 Runtime.exec() 을 이용할때 파이프(|)를 사용이 안됨. shell 실행 후 다른 프로세스로 grep을 하기 때문.

String[] cmd = {"/bin/sh", "-c", "ls /etc | grep test" };

Process p = Runtime.getRuntime().exec(cmd);

// java에서 Runtime.exec() 실행시 grep 사용

자바 파일명 클래스명 일치해야 함. 클래스명 대소문자 구분해야 함.

class nameTest {

public static void main(String args[]) {

System.out.println("dd");

}

}

javac nameTest.java

java nameTest

String s[] = new String[arr.length];

// 길이만큼 할당

String s[] = {}

s[0] = "A";

// 길이 할당이 안되었으므로 캐스팅 불가

ArrayList<String> a = new ArrayList<>();

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

{

for(int j=0;j<arr2.length;j++)

{

if(arr1[i].equals(arr2[j]))

a.add(arr1[i]);

}

}

// 길이만큼 할당해서 사용하려면 ArrayList를 사용

Properties-Java Build Path는 .classpath 파일에 저장 됨.

similarity = (float)a.size()/b.size();

// float a = 2/3f처럼 f붙이지 않고, 캐스팅해서 사용.

String s = "+";

if(s == "+")

System.out.println("ok");

// 문자 비교는 ==, equals 둘다 가능

String s = "+a";

if(s.substring(0, 1) == "+")

System.out.println("ok "+t.substring(0, 1));

// 한문자는 substring ==비교 인식하지만, 두글자부터는 되지 않음. 무조건 equals 사용.

String s = "test"

s.substring(0, 1) // t

s.substring(1, 3) // es

s.substring(3, 4) // t

// substring index는 0부터지만, 자르는건 +1이 한글자 단위. 마지막 문자는 index+1

HashMap ArrayList 사용

HashMap<String, ArrayList> listMap = new HashMap<String, ArrayList>();

listMap.put("list", new ArrayList());

ArrayList list = listMap.get("list");

String A = (String)list.get(0);

java.lang.NullPointerException

NullPointerException이 생기는 이유는, 어떤 변수나 객체의 값이 없거나, 생성되지 않았는데, 그것을 이용하려고 할 때 발생. 코드상의 문제가 아니기 때문에 컴파일시에는 에러가 발생되지 않고, 런타임시 에러. request로 값을 받는다면 값들이 제대로 넘어오는지, 변수를 사용해서 메소드를 호출 한다면 해당 변수에 값이 제대로 들어있는지 확인.

int nums[] = {1, 2, 3, 4, 5, 6};

Collections.shuffle(Arrays.asList(nums));

// Collections 배열 랜덤.

List<Obj> list = new ArrayList<Obj>();

// list.add 반복

Collections.shuffle(list);

// Array가 아닌, List Interface를 상속받는 Collection을 섞을 경우, 변수 그대로 인자로 넘김.

java 라이브러리 jar 추가

project->properties->java build path->add jars or add external jars

// 옵션에서 추가

WebContents/WEB-INF/lib

// 직접추가

jar 파일 실행

java -jar google-sites-liberation-1.0.4.jar

org.apache.commons.io

copyURLToFile(); // wget 기능

public final static AtomicLong along = new AtomicLong();

public static long nomlong= 0;

public static void main(String[] args) {

for(int i=0; i<1000; i++)

new Thread(){

public void run(){

along.incrementAndGet();

}

}.start();

 

for(int i=0; i<1000; i++)

new Thread(){

public void run(){

++nomlong;

}

}.start();

 

try { Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace(); }

System.out.println("no atomic : "+nomlong);

System.out.println("atomic : "+along.get());

}

// atomic 사용시 쓰레드 비동기로 실행. atomic get set도 비동기.

HttpClient은 deprecated. HttpsURLConnection 사용.

java implments는 c++의 virtual처럼 골격을 붙여나가는 형식의 개념이 아니라 캡슐화개념. impl에서 구현.

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;

String str = "{\"user_id\":\"test2\"}";

JSONParser parser = new JSONParser();

JSONObject json = (JSONObject) parser.parse(str);

String code = (String) json.get("user_id");

// JSONParser.

String params = "param="+param;

PrintWriter printWriter = new PrintWriter(con.getOutputStream());

printWriter.print(param);

printWriter.close();

String json = "{"+"\"userId\": \"test\""+ "}";

con.getOutputStream().write(json.getBytes());

// PrintWriter 방법, 그냥 write 방법.

JAVA SimpleDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.KOREA);

Date currentTime = new Date();

String time = formatter.format(currentTime);

System.out.println(time);

// 표준 Date 포맷

SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss", Locale.KOREA);

Date currentTime = new Date();

String merchantOrderNo = formatter.format(currentTime);

System.out.println(merchantOrderNo);

// Date를 주문번호로 사용

public boolean isSuccess() {

return success;

}

// boolean은 get대신 is 사용

Java bash

JAVA_HOME=/usr/java/jdk1.8.0_112

export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH

export PATH

// PATH=$PATH:$JAVA_HOME/bin은 안됨. PATH에 값을 지정해주고나서 사용가능한 듯.

javac Test.java // 자바 파일(*.java) 컴파일. . 클래스 파일(*.class) 생성.

java Test // 클래스 파일 실행.

java -d64 -version

// 64비트 인지 확인

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
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
글 보관함