목록Java (53)
거누의 개발노트
String String은 불변 객체이다. String str = "hello"; str = str + " Java"; 1. 처음에 hello 라는 문자열을 변수에 초기화 했다. 2. hello Java를 새로 초기화 했고, 원래 있던 hello 라는 문자열은 가비지 컬렉터(garbage collection)에 의해 사라지게 된다. 결국 String은 기존에 있던 문자열에 추가하는 형태가 아니라 새로운 인스턴스를 생성해서 문자열이 수정된 것 처럼 보이는것이다. StringBuffer / StringBuilder StringBuffer / StringBuilder은 가변 객체이다. StringBuffer sb = new StringBuffer("hello"); sb.append(" Java"); 1. St..
문제 설명 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 제한사항 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 이번 문제는 큰 이슈 없어서 넘어가도록 하겠습니다. public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr1[0].length]; for(int i=0; i
문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 처음에 푼 코드 public long[] solution(int x, int n ){ long[] answer = new long[n]; for (int i = 0; i < n; i++) { answer[i] = x * i + x; } return answer; } 결과 ※ 테스트 13, 테스트 14를 실패하게 되었다. 한참 고민하다가 int 여서 범위에 벗어나는 걸까? ..
간단히 말하자면 IDE에서 .java 파일에 코드를 작성해서 저장하면 컴파일러가 컴파일 후 컴파일된 코드를 .class 파일에 저장한다. 그럼 우리는 run() 을 하여 코드를 실행 시킬 것이고, run()을 하면 JVM에 적재되고 프로그램이 실행된다. 여기서 다시 의문이 생긴다. JVM이 뭐지? JavaVirtual Machine의 줄임말인건 알고 있고, 하드웨어의 기종에 상관없이 운영체제에 JVM만 설치되어있으면 Java 프로그램을 실행 할 수 있다고 한다. ( 플랫폼에 종속되지 않는다 ) 그럼 JVM안에 요소 하나하나 어떤 역할을 하는지 살펴보자. Class Loader .class(바이트 코드)를 읽어서 Runtime Data Area에 맞춰서 적재하는 기능을 수행한다. [로딩 절차] 1. 어떤 ..
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); } } Level 2 부터 할까 Level 1 부터 할까 고민 해봤는데... 아무래도 쉬운거부터 하면서 블로그에 익숙해 지는걸로! 아마 처음에 아래와 같이 주어졌을것이다. import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); } } 의문1. import를 제대로 알고있나...? 의문2. Scanner에 Sy..
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. class Solution { public int solution(int n) { int answer = 0; for (int i = 0; i < n; i++) { int temp = 0; //1부터 하나씩 더한다. for (int j = i+1; j n) { br..
AES128은 양방향 암호화로 대칭키를 가지고 암호화, 복호화하는 방식이다. 1. JAVA에서 암/복호화할 때 2. MySQL에서 AES128 암/복호화한 것을 JAVA에서 비교해야할 때(동기화) 두가지 버전으로 설명해 보겠슴다. 👉 1번 JAVA에서 암/복호화 package com.common; import java.security.Key; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; public class AES128 { private String ips; privat..
MD5와 SHA256 암호화 방식은 단방향 암호화 방식이다. 따라서 암호화한 값을 복호화하는 것은 일반적으로는 불가능 하다. 오늘은 JAVA에서 MD5와 SHA256을 암호화하는 방법! 👉 JAVA - MD5 암호화 package com.common; import java.security.MessageDigest; public class Encryption { public static void main(String[] args) throws Exception{ String txt = "Hello World"; System.out.println("txt : " + txt); System.out.println("MD5 : " + testMD5(txt)); } public static String testMD..