넷째 주 고용 19 세의 주간 분석을 유래

이 스택 오버플로 매주, 두 개의 자바, 두 파이썬의 네 번째 주입니다. 있는 공개 "전환 코드" 하루 더 환영 관심 없다. 또한, 고용 데이터는 내가 모집 및 작업 상황에 올해는 친구들이 지적에 대해 생각, 간단한 요약을하게 수집 여기 .

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 的第四周周报,希望对你有用,后续会继续更新,如果想看日更内容欢迎关注公众号。

公众号「渡码」,回复 就业 查看各平台完整的分析报告,分享更多高质量内容

추천

출처www.cnblogs.com/duma/p/11595248.html