반응형

java 프로그래밍 10

[java] list의 null 체크(ObjectUtils.isEmpty())

목차 NPE 😂 NPE(NullPointerException)는 java 개발하다 보면 정말 많이 만나는 에러 중 하나이고 Null값인 대상을 가지고 뭔가 하려고 하면 발생하는 에러다. 방지법은 공통모듈을 만들어 항상 null 체크를 하게끔 개발하는게 삽질을 줄이는 길일 듯 싶다. 아래와 같은 상황에서 NPE가 발생한다. userList에 아무것도 할당되지 않은 상태인데 사이즈를 측정하려고 하다니?(미친건가?) List userList = null; log.info("userList => {}", userList.size()); 스프링으로 개발 시 보통 데이터를 list에 담아 화면에 뿌리거나 API 형식으로 클라이언트에 내리거나 할텐데 list가 null이거나 빈값이 담기거나 사이즈가 0인 경우 등등 ..

IT/development 2023.02.12

[Java] java casting(string), String.valueOf(), String.toString()

목차 java casting(string), String.valueOf(), String.toString Casting : String() 변수를 문자열로 변환 String.valufOf() object를 문자열로 변환하여 반환함, object가 null이면 "null"을 반환함 toString() 객체를 문자열로 변환해서 반환 객체가 null이면 java.lang.NullPointerException 발생 참조 : https://tychejin.tistory.com/164 [Java] Casting, valueOf, toString 비교 Casting - (String)변수가 null이면 문자열 "null"을 반환합니다.변수가 문자열이 아니면 ClassCastException이 발생합니다. String..

IT/development 2022.11.29

[Java] Java bit 확인

목차 Java bit 확인할 경우 cmd 실행 후 아래 명령어 입력 위 이미지처럼 64-Bit라는 내용이 표시되면 64bit Java가 설치된 것임 아래처럼 나오면 32bit 설치된 것임 Error : This Java instance does not support a 64-bit JVM. Please install the desired version. 간단한 내용이지만 나중에 내가 보기 위해 기록 참조 : https://onedaystudy.tistory.com/79 [JAVA] JAVA BIT 확인하는 방법 Role이 바뀌면서 JAVA를 내가 설치하지 않고서버담당자들에게 설치를 요청하는 일이 빈번해졌다. 분명 64bit로 설치해달라고 요청했음에도 불구하고,종종 32bit로 설치해놓고는 64bit 설치..

IT/development 2022.11.24

[java]생년월일로 만나이 계산 예제

목차 [java]생년월일로 만나이 계산 예제 생년월일로 만나이 구하는 예제 소스이다. public static int getAgeByBirthday(String birthDay) { // param값은 "2000-01-01" 타입의 데이터라는 가정 String birth = StrUtils.replace(birthDay, "-", ""); // 년,월,일 자르기 int birth_year = StrUtils.parseInt(StrUtils.substring(birth, 0, 4)); int birth_month = StrUtils.parseInt(StrUtils.substring(birth, 4, 6)); int birth_day = StrUtils.parseInt(StrUtils.substring(bi..

IT/development 2022.11.24

[Java] Java 프로그램 실행과정(feat. TCPSchool)

목차 Java의 실행과정(feat. TCPSchool)😄 Java 프로그램의 실행과정을 기록한다. 물론 내부적으로는 더 복잡하지만 정말 간단히 정리해 본다. 컴파일 타임 환경😎 개발자가 코딩한 자바소스를 컴파일 시 자바 컴파일러가 JVM이 이해할 수 있는 자바 바이트 코드(.class)로 변환한다. 자바 클래스 파일(.java) 자바 컴파일러 자바 컴파일러는 자바 설치 시 javac.exe라는 실행 파일 형태로 설치됨 자바 바이트 코드(.class) 자바 바이트 코드는 JVM(자바 가상 머신)이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미함 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불린다. 확장자는 .class이고 JVM이 설치되어 있는 곳 어디서든 ..

IT/development 2022.11.23

[Java] Java String convert to byte[], byte[] convert to String

목차 Java String convert to byte[], byte[] convert to String java에서 문자열을 byte[]로 변환하고 반대로 byte[]를 문자열로 변환해야 되는 경우가 종종 생긴다. 만일 DB 테이블이 한글을 지원하지 않는 charset인 경우 DB테이블의 charset에 맞게 인코딩하여 숫자로 저장 후 사용자에게 보여줄 때는 디코딩한다. 그리고 문자열 암호화 등에도 쓰이는데 그 방법을 기록한다. String convert to byte[]😄 .getBytes() 메서드 이용 .getBytes()에 매개변수를 아무것도 안 넣으면 기본값 charset이 사용됨 .getBytes("UTF-*8"); 이런식으로 매개변수에 charset 설정 시 해당 charset으로 인코딩되..

IT/development 2022.11.23

[Java] Java Stream 사용법 정리(jdk 1.8 부터 사용 가능)

목차 Java Stream 사용법 정리😃 Java 1.8부터 지원되기 시작한 stream사용법에 대해 기록한다. 그동안 stream에 대해 깊게 공부해본 적이 없어서 이 기회에 제대로 공부해 보도록 하겠다. 앞으로 jdk 1.8을 사용할 경우에는 배열, 컬렉션 다룰 때 for문 도배하기 보단 효율적으로 stream을 사용할 수 있도록 공부할 예정이다.🤗 예를 들어 int타입 배열의 값을 중복 제거 후 내림차순 정렬해서 list로 반환하려고 한다. 그러면 스트림을 사용하지 않는 경우는 아래처럼 긴 코드를 입력해야 한다. 이를 스트림을 이용하면 아래 한줄이면 된다. 이를 좀 더 풀이하면 아래와 같다. System.out.println(Arrays.stream(arr).boxed()// stream 생성 .d..

IT/development 2022.11.23

[Java] Java Lambda 정리(jdk 1.8부터 사용 가능)

목차 연차는 쌓이는데 공부는 끝이 없고 아직 모르는게 너무 많다. 그래서 노쇠해서 코딩을 못하기 전까지는 꾸준히 부족한 부분을 공부해서 메꿀 생각이다. Java Lambda 정리(java 1.8 이상부터 가능) Java의 Lambda에 대해서 공부한 뒤 이를 기록해 보겠다.😃 java의 람다식은 익명객체를 생성하기 위한 표현식임(예제를 보면서 이해하는게 역시 빠르다.) 람다함수란?🙄 더보기 람다함수의 개념은 나무위키를 보면 아래처럼 나와있다. 람다식, 또는 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(匿名函數, Anonymous functions)를 지칭하는 용어이다. 익명함수는 말 그대로 이름이 없는 함수이다. 익명함수들은 공통으로 일급객체(First Class citizen)라는 특징..

IT/development 2022.11.23

[Java] java class version 확인(feat. unsupported major version..)

목차 java class version 확인 개발을 하다보면 컴파일된 자바 클래스 버전을 확인해야 되는 경우가 있다. 실서버의 클래스 버전을 미리 확인 한 다음 그에 맞춰서 로컬 소스를 컴파일 하는게 좋다. 공공기관 배포 시 에러를 처음 만났을 때 30분을 날려먹은 기억이 난다.(노트북을 가져가지 않아서 다시 컴파일을 한 파일을 받아야 되서)😭 만일 미리 확인 하지 않고 그냥 배포할 경우 unsupported major version 에러를 만나게 될 수도 있다. 만나는 걸 권장하지는 않지만 어떤 에러인지 직접 만나보는 것도 나쁠 것 같지는 않다.(시간이 여유로우면) 에러는 개발자를 성장 시켜주는 듯 싶다. 예를 위해 일부러 에러를 발생시켜 봤다. 예제는 IncludedInfo.class에서 버전 에러가..

IT/development 2022.11.23

[Java] 자바 Thread(feat. Thread , Runnable, join)

Java Thread 😏 스레드란 하나의 프로세스 안에서 독립적으로 실행되는 작업 단위를 뜻함 모든 프로세스에는 한 개 이상의 스레드가 존재하며 작업을 수행함 두개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스라고 함 ※ 프로세스 : 실행중인 프로그램, 운영체제에 의해 메모리 공간을 할당 받아 동작중인 것을 뜻함 이런 프로세스는 프로그램에 사용되는 데이터, 메모리 등의 자원, 스레드로 구성됨 Thread의 생성주기 😊 Runnable 상태 : 스레드 실행 전 준비상태 Running 상태 : 스케줄러에 의해 선택된 스레드가 실행되는 단계 Blocked 상태 : 스레드가 작업을 완수하지 못하고 잠시 작업을 멈추는 단계 Thread의 생명주기 😶 Runnable (준비상태) 스레드 실행되기 위한 준비단..

IT/development 2022.11.23
반응형