이 스택 오버플로 매주, 두 개의 자바, 두 파이썬의 네 번째 주입니다. 있는 공개 "전환 코드" 하루 더 환영 관심 없다. 또한, 고용 데이터는 내가 모집 및 작업 상황에 올해는 친구들이 지적에 대해 생각, 간단한 요약을하게 수집 여기 .
DAY1. 열거 == 객체와의 차이를 동일
같은 열거 상수를 비교했을 때 우리는 == 연산자를 사용하거나 방법을 동일 수 있습니다 :
공공 클래스 EnumEquals { 공공 열거 과일 { / ** 苹果* / APPLE, / ** 橙子* / ORANGE } 공공 정적 무효 equalApple (과일 과일) { 경우 (과일 == FRUITS.APPLE) { 에서 System.out.println ( " "동일 ); } 경우 (fruit.equals (FRUITS.APPLE)) { 에서 System.out.println이 ( "동일" ); } } }
왜 동일한 == 열거 상수를 판단 할 수있다 : 우선 첫 번째 질문을 고려?
우리 모두는 객체가 equals 메소드에 의해 동등하게 판단해야한다고 알고 있지만, == 참조가 동일 개체를 결정 열거 상수를 결정하는 데 사용할 수있는 동일한 == 열거 상수이기 때문에 객체 초기화, 다른 인스턴스의 정의에 추가한다. 예를 들어 : 상수를 정의 할 때 APPLE 초기화되었고, 다른 APPLE 열거 상수 실행이되지 않습니다. 문서 JLS에 따르면, 자바 인스턴스는 다음과 같은 네 가지 점에 의해 정의 된 외부 열거 상수가 없음을 확인합니다
- ) (새 과일 : 열거 형을 시도 명시 예는 예를 들어, 컴파일시 에러입니다
- 클론 방식 열거 클래스는 CloneNotSupportedException가 던져 복제 방법을 직접 볼 수있는 볼이 결코 복제 열거 상수를 보장하기 위해
- 특수 처리 직렬화 메커니즘은 인스턴스를 직렬화 복원되지 않도록 중복을 만들 수 있습니다
- 반사 금지 열거 형의 인스턴스
상수 열거 하나만 인스턴스 때문에 == 직접 동일 열거 예를 결정할 수있다. 우리는 소스 코드를 보면 당신은 또한 심판을받을 == 동일 찾을 수 있습니다, 따라서 우리는 두 번째 질문을 고려해 어떤 사용의 차이점은 ==이며, 그 같다?
- == 의지를 동일 NullPointerException이 던져하지
- == 컴파일시 형식 불일치가 확인하지만 같음을 확인하지 않습니다
공공 클래스 EnumEquals { 공공 열거 과일 { / ** 苹果* / APPLE, / ** 橙子* / ORANGE } 공공 열거 SIZE { / ** 小* / SMALL, / ** 中* / MIDDLE, / ** 大* / LARGE } 공공 정적 무효 메인 (문자열 []에 args) { FRUITS 과일 = FRUITS.APPLE; 과일 == SIZE.SMALL; } }
따라서, 등호의 사용 == 다음과 같은 장점에 비해 :
- 빠른
- 더 많은 보안 런타임
- 안전한 컴파일 시간
참조 :
https://stackoverflow.com/questions/1750435/comparing-java-enum-members-or-equals
https://docs.oracle.com/javase/specs/jls/se9/html/jls-8.html#jls-8.9
DAY2. 파이썬으로 파일을 복사
우리 모두는 일반적으로 우리가 준비가 만든 라이브러리를 찾을 수있는 기본 기능을 구현하려는 파이썬 라이브러리는 매우 강력 알고있다. 오늘 우리는 파이썬 표준 라이브러리 모듈을 소개 - 또 shutil,이 모듈은 파일 복사하는 방법을 정의합니다. 예를 들면 : 파일을 복사하는 함수를 직접 호출 할 수 있습니다
SRC = ' 1.TXT ' DST = ' 2.txt ' shutil.copyfile (SRC, DST)
이 기능뿐만 아니라, 또 shutil 모듈은 파일 복사 기능은 추가 기능을 제공 정의하지만 세부 사항은 다음 비교 약간 다릅니다 :
어느 것이 더 포괄적 인 추정 성능의 사본이 상대적으로 낮은 COPY2. 다음의 두 가지 예는 서로 다른 기능을 구분하는 간단한 비교합니다.
1. 대상 경로가 디렉토리인지 여부, COPY2 대 CopyFile 수
SRC = " test.rar ' DST = ' D : \\ ' shutil.copyfile (SRC, DST) shutil.copy2 (SRC, DST)
2. COPY2 대 CopyFile 수, 메타 데이터를 복사 할 수 있습니다
SRC = " test.rar ' DST = ' test1.rar ' shutil.copyfile (SRC, DST) shutil.copy2 (SRC, DST)
메타보기 파일 정보 CopyFile 수 복사 된 파일이 최신 업데이트 시간, 같은 소스 파일로 업데이트 COPY2 복사 된 파일.
다만, 두 가지 예를 인용하는 등의 다른 기능은 자신의 이익에 시도 할 수 있습니다. 또한, 또 shutil 모듈은 우리가 사용하기에 더 편리 할 수있는 다른 기능이 있어야합니다. 짧은 파이썬 개발자는 여전히 비싼 될 수 있습니다 효율성을 사용, 마스터 파이썬은 정말 업무의 효율성을 향상시킬 수 있습니다.
참조 :
https://stackoverflow.com/questions/123198/how-do-i-copy-a-file-in-python
DAY3. 자바 빈은 무엇입니까
- 모든 속성, getter 및 setter 설정 속성을 민간 제공하고 있습니다
- 인수가없는 public 생성자가있다
- 직렬화 구현
사실 자바 빈은 규범이다. 우리의 지식을 위해 종종 사양의 이유를 자바 빈 정의를 요구한다. 세 점 이상 제어, 내가 생각하고 이것이다 :
- 게터 / 세터 방법 판독 속성 호출 외부 노출의 틀을 용이하게하기 위해 인터페이스를 작성한다. 한편, 개인 특성과 보안을 개선하기 위해 수정 될 수있다
- 이전 기사의 예는 쉽게 반사 클래스 인스턴스를 통해 프레임 워크를 만들 수 있습니다 매개 변수없이 하둡 프레임 워크 반영, public 생성자를 읽어
- 웹은 일반적으로 데이터 전송 프레임을 요구하기 때문에, 객체가 직렬화 된 직렬화하는 기능을 갖도록 요구된다
오늘 우리이 문서는 자바 콩 사양의 정의에 대한 그냥 간단한 소개, 간단한, 내 자신의 생각의 일부에 대해 얘기입니다.
참조 :
https://stackoverflow.com/questions/3295496/what-is-a-javabean-exactly
DAY3. 파이썬은 switch 문에서 구현
우리 모두는 기본 파이썬 구문은 switch 문에서 지원되지 않았 음을 알 수 있습니다. 물론, 이러한 유연한 파이썬은 비교적 쉽게 달성하기 위해 자신을 구문. 다음과 같이 코드입니다 :
데프 F (X) : 창 { ' ' 1 , ' B ' : 2 , } [X]
기본값은 없습니다, 다소 불완전 달성하고, 매개 변수는 사전에 오류가없는 경우. 우리는 다음과 같은 버전을 업데이트 :
데프 F (X) : 창 { ' ' 1 , ' B ' : 2 } 갔지 (X, 9)
달성 이상적 보인다, 우리는 또한 같은 복잡한 계산의 람다 표현식을 사용할 수 있습니다 :
def f3(x): return { 'a': lambda x: x * 5, 'b': lambda x: x + 7, 'c': lambda x: x - 2 }.get(x, lambda x: x)
用 Python 实现 switch 语句还是非常方便的。
猜测 Python 原生之所以不支持 switch 语法是因为 Python 语言本身已经很灵活了,不需要额外提供 switch 语句增加语言本身的臃肿。真是应了那句话,人生苦短,我用 Python
以上便是 Stack Overflow 的第四周周报,希望对你有用,后续会继续更新,如果想看日更内容欢迎关注公众号。
公众号「渡码」,回复 就业 查看各平台完整的分析报告,分享更多高质量内容