본문 바로가기
728x90

전체 글249

불변성(무공변성), 공변성, 반공변성 짧고 쉽게. 불변성(무공변성, invariant) 상속 관계에 상관없이 자신의 타입만 허용하는 것을 뜻한다. Kotlin 에서는 따로 지정해주지 않으면 기본적으로 모든 Generic Class 는 무공변이다. Java 에서의 와 같다. 공변성(covariant) 자기 자신과 자식 객체를 허용한다. Java 에서의 2023. 2. 11.
개선율 공식, 성능 향상 비율 튜닝 전과 후의 차이를 수치로 나타냄. 성능 향상 비율 성능 향상 비율 = (이전 시간 - 개선된 시간) / 이전 시간 * 100 ex) 1분 2초(62초)가 걸린 API를 300ms(0.3초)로 개선한 경우 성능 향상 비율 = (62 - 0.3) / 62 * 100 = 99.51% 2023. 2. 11.
자바 if else 와 swtich case 를 비교해보았다.. 선 결론: 유의미한 차이를 느끼지 못했고, 가독성과 스타일에 따라 그때그때 다르다.요즘 컴파일러가 알아서 잘 해주기 때문에 성능보다는 가독성으로 잘 정리하면 되지않을까..!? (물론 자체 테스트기 떄문에, 틀릴 수 있음) 요즘 컴파일러 최적화가 잘되어있는지, 생각보다 차이가 날거라 생각했는데, 테스트코드를 잘못 만든것인가...좀 차이를 볼려고 횟수를 상당히 많이 늘리지않는이상은 유의미한 차이를 못느끼겠다. jdk7 버전부터 String 비교가 가능한 것으로 알고있었는데, 이는 String 클래스에서 hasCode 를 오버라이딩 하여 컴파일러가 컴파일 할때 해당 hasCode를 순서대로 처리하는것으로 알고있어서 String 으로 비교, 숫자로 비교해도 차이가 날까 궁금했는데, 이는 생각해보니 컴파일러가 최.. 2023. 2. 11.
[이펙티브자바]item 27.비검사 경고를 제거하라 잠재적 위험이 될 수 있는 경고를 제거하는게 좋다. 경고를 제거할 수는 업지만 타입이 안전하다고 확신할 수 있다면 @SuppressWarnings("unchecked") 를사용하자 해당 어노테이션을 사용했다면 해당 경고를 무시해도 안전한 이유를 주석으로 남겨야 한다. 최대한 좁은 범위로 한정하자.상위에 넣으면 하위의 모든 경고가 무시되기 때문에, 추후 누군가가 경고가 될만한 코드를 넣어도 무시된다. public class SuppressWarning { Object[] elementData; private int size; public T[] toArray(T[] a) { if (a.length < size) { @SuppressWarnings("unchecked") T[] result = (T[]) A.. 2023. 2. 10.
[이펙티브자바]item 26.로 타입은 사용하지 말라 로(raw)타입을 사용하면 런타임에 예외가 일어날 수 있으니 사용하면 안 된다. 로 타입은 제네릭이 도입되기 이전 코드와의 호환성을 위해 제공될 뿐이다. 로 타입이란 제네릭 타입에서 타입 매개변수를 전혀 사용하지 않을 때를 말한다 ex)List, Set 로 타입을 쓰면 제네릭이 안겨주는 안정성과 표현력을 모두 잃게 된다. 애초에 왜 만들어놓은 걸까?: 이전 버전의 코드들의 호환성 때문이다. 비한정적 와일드카드 타입: => 타입이 안전하다. 아래는 로타입으로 일어날 수 있는 안정성 예제이다. public class Numbers { static int numElementsInCommon(Set s1, Set s2) { //한정적 와일드카드 타입으로 인한 add 불가능. //s1.add(**) int res.. 2023. 2. 10.
전체적인 건강과 건강을 위한 운동의 중요성 신체 운동은 건강과 건강을 유지하기 위해 필수적이다. 규칙적인 운동을 당신의 일상에 통합하는 것의 몇 가지 이점은 다음과 같다. 1.향상된 체력: 규칙적인 운동은 체력, 지구력, 유연성, 그리고 균형을 향상시켜 전반적인 체력 향상으로 이어질 수 있습니다. 2.더 나은 정신 건강: 운동은 우울증과 불안의 증상을 줄이고 전반적인 기분과 웰빙의 느낌을 향상시키는 것으로 나타났다. 3.만성 질환의 위험 감소: 규칙적인 운동은 심장병, 뇌졸중, 그리고 몇몇 종류의 암을 포함한 많은 만성 질환의 위험을 낮추는 데 도움을 줄 수 있습니다. 4.향상된 수면: 운동은 여러분이 더 빨리 잠들고, 더 깊은 잠을 자고, 더 상쾌한 기분으로 일어나도록 도와줄 수 있습니다. 5.수명 증가: 규칙적인 운동은 더 긴 수명과 나이와 .. 2023. 2. 10.
식물성 식사가 건강과 환경에 미치는 5가지 이점 식물 위주의 식사는 여러분의 건강과 환경 모두에 많은 이점을 가지고 있는 증가하는 추세입니다. 여기 여러분의 식단에 더 많은 식물성 음식을 포함시키는 것을 고려해야 하는 5가지 이유가 있습니다: 1.향상된 심장 건강: 식물 위주의 식단은 섬유질, 산화 방지제, 그리고 칼륨과 마그네슘과 같은 심장 건강에 좋은 영양소가 풍부합니다. 2.더 나은 체중 관리: 식물성 식품은 일반적으로 칼로리와 지방이 낮기 때문에 체중 관리를 위한 효과적인 도구가 된다. 3.만성 질환의 위험 감소: 더 많은 식물을 먹는 것은 제2형 당뇨병, 특정 암, 심장 질환과 같은 만성 질환의 위험 감소와 관련이 있다. 4.환경을 위해 더 좋다: 식물성 식사는 동물성 식품이 많은 식단보다 탄소 발자국이 더 낮다. 이것은 온실 가스 배출을 줄.. 2023. 2. 10.
명상의 놀라운 5가지 이점 명상은 수천 년 동안 인기 있는 관행이었지만, 그것이 건강상의 이점에 대해 널리 인정을 받은 것은 최근 몇 년 만이다. 스트레스와 불안을 줄이는 것에서부터 집중력과 수면을 향상시키는 것에 이르기까지, 명상의 이점은 다양하다. 여러분이 알지 못했을 수도 있는 명상의 다섯 가지 놀라운 이점이 있습니다. 1.향상된 심혈관 건강: 명상은 혈압을 낮추고 심장병의 위험을 줄이는 것으로 나타났다. 심장병의 주요 위험인자인 스트레스를 줄이는 데 도움이 되기 때문이다. 2.면역 체계 강화: 연구는 규칙적인 명상이 질병과 질병을 물리치는데 도움을 주면서 몸 안의 면역 세포의 수를 증가시킬 수 있다는 것을 발견했다. 3.향상된 창의성: 명상은 창의력과 문제 해결 능력을 높이는 데 도움이 될 수 있다. 마음을 맑게 하고 새로.. 2023. 2. 8.
정신 건강을 증진시키는 10가지 간단한 방법 좋은 정신 건강을 유지하는 것은 전반적인 행복과 행복에 매우 중요하다. 여기 여러분의 정신 건강을 증진시킬 수 있는 10가지 간단한 방법들이 있습니다: 1.충분한 수면을 취하세요: 적절한 휴식과 회춘을 보장하기 위해 매일 밤 7-9시간의 수면을 목표로 하세요. 2.규칙적으로 운동하라: 규칙적인 운동은 엔도르핀을 방출하고, 스트레스를 줄이고, 기분을 좋게 하는데 도움이 된다. 3.균형 잡힌 식사를 하세요: 과일, 야채, 통곡물, 그리고 지방이 적은 단백질과 함께 균형 잡힌 식사를 하는 것은 기분과 에너지 수준을 조절하는데 도움을 줄 수 있습니다. 4.다른 사람들과 연결하기: 친구, 가족, 심지어 애완동물과 시간을 보내는 것은 행복감을 향상시키고 스트레스를 줄이는데 도움을 줄 수 있습니다. 5.기술로부터 휴.. 2023. 2. 8.
728x90