728x90
반응형

프로그래밍 언어/JAVA 172

JAVA 완벽한 JPA 엔티티 만들기

질문 : 완벽한 JPA 엔티티 만들기 [닫기] 나는 JPA (implementation Hibernate)로 한동안 작업 해 왔으며 엔티티를 생성해야 할 때마다 AccessType, 불변 속성, equals / hashCode, ... 등의 문제로 어려움을 겪고 있습니다. 그래서 저는 각 문제에 대한 일반적인 모범 사례를 찾아서 개인적으로 사용하기로 결정했습니다. 그러나 나는 누구든지 그것에 대해 언급하거나 내가 틀린 곳을 말해도 괜찮습니다. Entity Class 직렬화 가능 구현: 이유 : 사양에 따라야한다고 명시되어 있지만 일부 JPA 공급자는이를 적용하지 않습니다. JPA 공급자로서 Hibernate는 이것을 강제하지 않지만 Serializable이 구현되지 않은 경우 ClassCastExcept..

Java 중첩 for문 벗어나는 방법

질문 : Java에서 중첩 루프를 어떻게 해제합니까? 다음과 같은 중첩 루프 구조가 있습니다. for (Type type : types) { for (Type t : types2) { if (some condition) { // Do something and break... break; // Breaks out of the inner loop } } } 이제 두 루프에서 어떻게 벗어날 수 있습니까? 비슷한 질문을 살펴 보았지만 Java와 관련된 것은 없습니다. 대부분의 고토를 사용했기 때문에 이러한 솔루션을 적용 할 수 없었습니다. 내부 루프를 다른 방법에 넣고 싶지 않습니다. 루프를 다시 실행하고 싶지 않습니다. 깨지면 루프 블록의 실행이 끝납니다. 답변 다른 답변자처럼, 나는 확실히 당신은 그냥 완전..

자바 스크립트에서 난수 생성기 시드

질문 : 자바 스크립트에서 난수 생성기 시드 JavaScript에서 Math.random )를 시드 할 수 있습니까? 답변 Math.random() 을 시드 할 수는 없지만 자체 생성기를 작성하는 것은 상당히 쉬우 며 기존 생성기를 사용하는 것이 좋습니다. 확인 : 이 관련 질문 . 또한 시드에 대한 자세한 내용은 David Bau의 블로그를 참조하십시오. 출처 : https://stackoverflow.com/questions/521295/seeding-the-random-number-generator-in-javascript

JavaScript 변수명에 $를 붙이는 이유

질문 : JavaScript 변수가 달러 기호로 시작하는 이유는 무엇입니까? 달러 기호로 시작하는 변수가있는 JavaScript를 자주 봅니다. 이런 식으로 변수 접두사를 언제 / 왜 선택합니까? (나는 jQuery 및 기타에서 볼 수있는 $('p.foo') 구문에 대해 묻는 $name 및 $order 와 같은 일반 변수) 답변 jQuery 에서 매우 일반적인 사용은 변수에 저장된 jQuery 객체를 다른 변수와 구별하는 것입니다. 예를 들어 다음과 같이 정의합니다. var $email = $("#email"); // refers to the jQuery object representation of the dom object var email_field = $("#email").get(0); // ref..

JavaScript 객체에서 키를 제거하는 방법

질문 : JavaScript 객체에서 키를 제거하려면 어떻게합니까? 다음 형식의 객체가 있다고 가정 해 보겠습니다. var thisIsObject= { 'Cow' : 'Moo', 'Cat' : 'Meow', 'Dog' : 'Bark' }; 키로 제거하는 기능을하고 싶었습니다. removeFromObjectByKey('Cow'); 답변 delete 연산자를 사용하면 객체에서 속성을 제거 할 수 있습니다. 다음 예제는 모두 동일한 작업을 수행합니다. // Example 1 var key = "Cow"; delete thisIsObject[key]; // Example 2 delete thisIsObject["Cow"]; // Example 3 delete thisIsObject.Cow; 관심이 있으시면 삭제..

다른 JavaScript 파일에 JavaScript 파일 포함하는 방법

질문 : 다른 JavaScript 파일에 JavaScript 파일을 어떻게 포함합니까? 다른 JavaScript 파일에 JavaScript 파일을 포함 할 수있는 CSS의 @import 와 유사한 JavaScript가 있습니까? 답변 이전 버전의 JavaScript에는 가져 오기, 포함 또는 필요가 없었기 때문에이 문제에 대한 다양한 접근 방식이 개발되었습니다. 그러나 2015 년 (ES6) 이후 JavaScript는 Node.js에서 모듈을 가져 오기 위한 ES6 모듈 표준을 가지고 있으며 대부분의 최신 브라우저 에서도 지원됩니다. 이전 브라우저와의 호환성을 위해 Webpack 및 Rollup 과 같은 빌드 도구 및 / 또는 Babel 과 같은 변환 도구를 사용할 수 있습니다. ES6 Modules E..

Java에서 소수점 이하 n 자리로 숫자를 반올림하는 방법

질문 : Java에서 소수점 이하 n 자리로 숫자를 반올림하는 방법 내가 원하는 것은 half-up 방법을 사용하여 반올림하는 문자열로 double을 변환하는 방법입니다. 즉, 반올림 할 소수점이 5이면 항상 다음 숫자로 반올림됩니다. 이것은 대부분의 상황에서 대부분의 사람들이 기대하는 반올림의 표준 방법입니다. 또한 유효 숫자 만 표시하고 싶습니다. 즉, 뒤에 0이 없어야합니다. 이 작업을 수행하는 한 가지 방법은 String.format 메서드를 사용하는 것입니다. String.format("%.5g%n", 0.912385); 보고: 0.91239 훌륭하지만 중요하지 않더라도 항상 소수점 이하 5 자리로 숫자를 표시합니다. String.format("%.5g%n", 0.912300); 보고: 0.91..

Java 인터페이스에서 static 메소드를 정의 하는 방법

질문 : Java 인터페이스에서 정적 메소드를 정의 할 수없는 이유는 무엇입니까? 편집 : Java 8부터 이제 인터페이스에서 정적 메서드가 허용됩니다. 다음은 그 예입니다. public interface IXMLizable { static T newInstanceFromXML(Element e); Element toXMLElement(); } 물론 이것은 작동하지 않습니다. 하지만 왜 안돼? 가능한 문제 중 하나는 전화를 걸면 어떻게되는지입니다. IXMLizable.newInstanceFromXML(e); 이 경우 빈 메서드 (예 : {})를 호출해야한다고 생각합니다. 모든 하위 클래스는 정적 메서드를 구현해야하므로 정적 메서드를 호출 할 때 모두 괜찮습니다. 그렇다면 왜 이것이 가능하지 않습니까? 편..

IDEA : javac : source release 1.7 requires target release 1.7

질문 : IDEA : javac : 소스 릴리스 1.7에는 대상 릴리스 1.7이 필요합니다. IntelliJ IDEA를 사용하여 JUnit 테스트를 실행할 때 이 문제를 어떻게 해결할 수 있습니까? SDK 1.7 사용 모듈 언어 수준은 1.7입니다. Maven 빌드가 잘 작동합니다. (그래서 IDEA 구성 문제에서 이것을 믿습니다) 답변 Maven에서 가져온 잘못된 컴파일러 옵션이있을 가능성이 높습니다. 또한 스크린 샷에 설명 된 프로젝트 및 모듈 바이트 코드 ( target ) 버전 설정을 확인하십시오. 소스 언어 레벨이 구성된 기타 위치 : 프로젝트 구조 | 계획 프로젝트 구조 | 모듈 (모든 모듈 확인) | 출처 Maven 기본 언어 수준 은 1.5 (5.0)이며 위 스크린 샷에서이 버전이 모듈 언..

instanceof와 Class.isAssignableFrom (…)의 차이점

질문 : instanceof와 Class.isAssignableFrom (…)의 차이점은 무엇입니까? 다음 중 어느 것이 더 낫습니까? a instanceof B 또는 B.class.isAssignableFrom(a.getClass()) 내가 아는 유일한 차이점은 'a'가 null이면 첫 번째는 false를 반환하고 두 번째는 예외를 던진다는 것입니다. 그 외에는 항상 동일한 결과를 제공합니까? 답변 instanceof 사용할 때 컴파일 타임 B 클래스를 알아야합니다. isAssignableFrom() 을 사용할 때 동적 일 수 있으며 런타임 중에 변경 될 수 있습니다. 출처 : https://stackoverflow.com/questions/496928/what-is-the-difference-betw..

오류 java.lang.OutOfMemoryError : GC 오버 헤드 제한 초과

질문 : 오류 java.lang.OutOfMemoryError : GC 오버 헤드 제한 초과 JUnit 테스트를 실행할 때이 오류 메시지가 표시됩니다. java.lang.OutOfMemoryError: GC overhead limit exceeded OutOfMemoryError 가 무엇인지 알고 있지만 GC 오버 헤드 제한은 무엇을 의미합니까? 어떻게 해결할 수 있습니까? 답변 이 메시지는 어떤 이유로 가비지 수집기가 과도한 시간 (기본적으로 프로세스의 모든 CPU 시간의 98 %)을 많이 사용하고 각 실행에서 매우 적은 메모리 (기본적으로 힙의 2 %)를 복구 함을 의미합니다. 이것은 효과적으로 프로그램이 진행을 중지하고 항상 가비지 콜렉션 만 실행 하느라 바쁘다는 것을 의미합니다. 애플리케이션이 아..

JavaScript에서 'prototype'과 'this'의 차이

질문 : JavaScript에서 'prototype'과 'this'의 사용? 차이점은 무엇입니까 var A = function () { this.x = function () { //do something }; }; 과 var A = function () { }; A.prototype.x = function () { //do something }; 답변 예제는 결과가 매우 다릅니다. 차이점을 살펴보기 전에 다음 사항에 유의해야합니다. 생성자의 프로토 타입 [[Prototype]] 속성을 통해 인스턴스간에 메서드와 값을 공유하는 방법을 제공합니다. 함수의 이것은 함수가 호출되는 방법 또는 bind를 사용하여 설정됩니다 (여기서는 설명하지 않음). 기능 (예를 들어 개체에서 호출되는 경우 myObj.metho..

@Transactional 주석이 속하는 곳

질문 : @Transactional 주석은 어디에 속합니까? @Transactional 을 DAO 클래스 및 / 또는 해당 메서드에 배치해야합니까? 아니면 DAO 개체를 사용하여 호출하는 서비스 클래스에 주석을 추가하는 것이 더 낫습니까? 아니면 두 "레이어"에 주석을다는 것이 합리적입니까? 답변 트랜잭션이 서비스 계층에 속한다고 생각합니다. 작업 단위 및 사용 사례에 대해 알고있는 사람입니다. 단일 트랜잭션에서 함께 작동해야하는 여러 DAO가 서비스에 주입 된 경우 정답입니다. 출처 : https://stackoverflow.com/questions/1079114/where-does-the-transactional-annotation-belong

Java를 사용하여 문자열을 텍스트 파일에 저장

질문 : Java를 사용하여 문자열을 텍스트 파일에 저장하려면 어떻게합니까? Java에서는 "text"라는 문자열 변수에 텍스트 필드의 텍스트가 있습니다. "text"변수의 내용을 파일에 저장하려면 어떻게해야합니까? 답변 바이너리 데이터가 아닌 단순히 텍스트를 출력하는 경우 다음이 작동합니다. PrintWriter out = new PrintWriter("filename.txt"); 그런 다음 출력 스트림과 마찬가지로 String을 작성하십시오. out.println(text); 언제나처럼 예외 처리가 필요합니다. 작성이 끝나면 out.close() 를 호출하십시오. Java 7 이상을 사용하는 경우 " try-with-resources 문 "을 사용하면 다음과 같이 작업이 완료되면 PrintStream..

JavaScript를 사용하여 페이지 맨 위로 스크롤 하는 방법

질문 : JavaScript를 사용하여 페이지 맨 위로 스크롤 하시겠습니까? JavaScript를 사용하여 페이지 상단으로 스크롤하려면 어떻게합니까? 스크롤바가 페이지 상단으로 즉시 점프하는 것은 부드러운 스크롤링을 원하지 않기 때문에 바람직합니다. 답변 애니메이션을 적용하기 위해 변경 사항이 필요하지 않으면 특별한 플러그인을 사용할 필요가 없습니다. 기본 JavaScript window.scrollTo() 메서드를 0, 0 전달하면 페이지가 맨 위로 스크롤됩니다. 즉시 떠났습니다. window.scrollTo(xCoord, yCoord); 매개 변수 xCoord는 가로 축을 따라있는 픽셀입니다. yCoord는 세로 축을 따라있는 픽셀입니다. 출처 : https://stackoverflow.com/que..

자바 문자열을 날짜로 변환하는 방법

질문 : 자바 문자열을 날짜로 변환 '2010 년 1 월 2 일'형식 String 을 Java Date 로 변환하는 가장 좋은 방법은 무엇입니까? 궁극적으로 월, 일, 연도를 정수로 나누고 싶습니다. Date date = new Date(); date.setMonth().. date.setYear().. date.setDay().. date.setlong currentTime = date.getTime(); 날짜를 시간으로 변환합니다. 답변 그것은 어려운 방법이며, 이러한 java.util.Date setter 메서드는 Java 1.1 (1997) 이후로 더 이상 사용되지 않습니다.입력 문자열과 일치하는 형식 패턴을 사용 SimpleDateFormat 사용하여 날짜 형식을 지정하면됩니다 . 입력 문자열로..

Java에서 파일의 MD5 체크섬 가져 오기

질문 : Java에서 파일의 MD5 체크섬 가져 오기 파일의 MD5 체크섬을 얻기 위해 Java를 사용하려고합니다. 정말 놀랐지 만 파일의 MD5 체크섬을 얻는 방법을 보여주는 것을 찾을 수 없었습니다. 어떻게 되나요? 답변 입력 스트림 데코레이터 java.security.DigestInputStream 이 있으므로 데이터를 추가로 전달하는 대신 평소처럼 입력 스트림을 사용하면서 다이제스트를 계산할 수 있습니다. MessageDigest md = MessageDigest.getInstance("MD5"); try (InputStream is = Files.newInputStream(Paths.get("file.txt")); DigestInputStream dis = new DigestInputStream..

자바 : List<String> 문자열로 변환

질문 : 자바 : 목록 변환 문자열에 JavaScript에는 Array.join() js>["Bill","Bob","Steve"].join(" and ") Bill and Bob and Steve Java에 이와 같은 것이 있습니까? StringBuilder를 사용하여 직접 작업 할 수 있다는 것을 알고 있습니다. static public String join(List list, String conjunction) { StringBuilder sb = new StringBuilder(); boolean first = true; for (String item : list) { if (first) first = false; else sb.append(conjunction); sb.append(item); }..

Java에서 디렉토리를 만드는 방법

질문 : Java에서 디렉토리를 만드는 방법은 무엇입니까? 디렉토리 / 폴더는 어떻게 만듭니 까? System.getProperty("user.home"); 새 폴더가없는 경우에만 디렉토리 (디렉토리 이름 "new folder")를 만들어야합니다. 답변 ~ 7 년 후에 Bozho 가 제안한 더 나은 접근 방식으로 업데이트 할 것입니다. File theDir = new File("/path/directory"); if (!theDir.exists()){ theDir.mkdirs(); } 출처 : https://stackoverflow.com/questions/3634853/how-to-create-a-directory-in-java

Java에서 Map 값을 증가시키는 가장 효율적인 방법

질문 : Java에서 Map 값을 증가시키는 가장 효율적인 방법 이 질문이이 포럼에서 너무 기본적인 것으로 간주되지 않기를 바랍니다. 그러나 우리는 보게 될 것입니다. 여러 번 실행되는 더 나은 성능을 위해 일부 코드를 리팩터링하는 방법이 궁금합니다. Map (아마도 HashMap)을 사용하여 단어 빈도 목록을 만들고 있다고 가정 해 보겠습니다. 여기서 각 키는 계산되는 단어가있는 문자열이고 값은 단어의 토큰이 발견 될 때마다 증가하는 정수입니다. Perl에서 이러한 값을 증가시키는 것은 간단합니다. $map{$word}++; 그러나 Java에서는 훨씬 더 복잡합니다. 여기 내가 현재하고있는 방식 : int count = map.containsKey(word) ? map.get(word) : 0; map..

자바 HashMap을 통해 반복하는 방법

질문 : HashMap을 통해 반복 HashMap 의 항목을 반복하는 가장 좋은 방법은 무엇입니까? 답변 다음과 같이entrySet() 반복합니다. public static void printMap(Map mp) { Iterator it = mp.entrySet().iterator(); while (it.hasNext()) { Map.Entry pair = (Map.Entry)it.next(); System.out.println(pair.getKey() + " = " + pair.getValue()); it.remove(); // avoids a ConcurrentModificationException } } Map 에 대해 자세히 알아보십시오. 출처 : https://stackoverflow.com/q..

Try / Catch를 사용하지 않고 JavaScript에서 문자열이 유효한 JSON 문자열인지 확인하는 방법

질문 : Try / Catch를 사용하지 않고 JavaScript에서 문자열이 유효한 JSON 문자열인지 확인하는 방법 다음과 같은 것 : var jsonString = '{ "Id": 1, "Name": "Coke" }'; //should be true IsJsonString(jsonString); //should be false IsJsonString("foo"); IsJsonString("foo") 솔루션에는 try / catch가 포함되지 않아야합니다. 우리 중 일부는 "모든 오류 중단"을 설정하고 잘못된 JSON 문자열을 중단하는 디버거를 좋아하지 않습니다. 답변 먼저 코멘트. try/catch 사용하지 않는 것에 관한 것이 었습니다. 그것을 사용해도 괜찮다면 아래 답변을 읽으십시오. JSON ..

java.time.LocalDateTime과 java.util.Date 간 변환

질문 : java.time.LocalDateTime과 java.util.Date 간 변환 Java 8에는 날짜 및 시간에 대한 완전히 새로운 API가 있습니다. 이 API에서 가장 유용한 클래스 중 하나는 시간대와 무관 한 날짜-시간 값을 보유하기위한 LocalDateTime java.util.Date 를 사용하는 코드는 수백만 줄이 될 것입니다. 따라서 이전 코드와 새 코드를 연결할 때 둘 사이를 변환해야합니다. 이를 달성하기위한 직접적인 방법이없는 것처럼 보이지만 어떻게 할 수 있습니까? 답변 짧은 답변: Date in = new Date(); LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault()); Dat..

Java 배열을 출력하는 가장 간단한 방법

질문 : Java 배열을 인쇄하는 가장 간단한 방법은 무엇입니까? Java에서 배열은 toString() 재정의하지 않으므로 직접 인쇄하려고하면 Object.toString() 정의 된대로 className + '@'+ hashCode 16 진수를 얻습니다. int[] intArray = new int[] {1, 2, 3, 4, 5}; System.out.println(intArray); // prints something like '[I@3343c8b3' 그러나 일반적으로 우리는 실제로 [1, 2, 3, 4, 5] 와 같은 것을 더 원합니다. 가장 간단한 방법은 무엇입니까? 다음은 몇 가지 입력 및 출력의 예입니다. // Array of primitives: int[] intArray = new int..

JavaBean의 역할

질문 : JavaBean은 정확히 무엇입니까? "Bean"은 속성과 getter / setter가있는 Java 클래스라는 것을 이해했습니다. 내가 이해하는 한 C 구조체와 동일합니다. 사실인가요? 또한 빈과 일반 클래스 사이에 실제 구문상의 차이가 있습니까? 특별한 정의 나 인터페이스가 있습니까? 기본적으로 이것에 대한 용어가있는 이유는 무엇입니까? 또한 Serializable 인터페이스는 무엇을 의미합니까? 답변 JavaBean은 표준 일뿐입니다. 그게 다야. 그것은 단지 관습입니다. 많은 라이브러리가 그것에 의존합니다. Serializable 과 관련하여 API 문서에서 : 클래스의 직렬화는 java.io.Serializable 인터페이스를 구현하는 클래스에 의해 활성화됩니다. 이 인터페이스를 구현하..

728x90
반응형