묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
채팅 프로그램쪽 챕터, 넘어가고 http로 가서 들어도 되는지?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 여쭤볼게 있어서 질문을 드립니다. 영한님이 내준 과제 채팅 프로그램 만들고 싶은데 못 만듭니다. 근데 여기서 저는 혼자서 만들고 싶은 욕구가 강해서 계속 진도가 못나가는 상황인데요.(영한님 말중에 "레고볼릭 조립하듯이", 이때까지 배운 내용들을 잘 조립하면 될것 같은데 라는 생각이 계속 나네요) 근데 계속 시간을 써도 안되니 나중에 풀자라고 굳혀진 상황입니다.채팅 프로그램 챕터를 뛰어넘고 http 챕터 쪽으로 넘어 갈려고 하는데, 채팅프로그램 챕터를 건너뛰고, http챕터쪽으로 가도 문제가 없는지 알고 싶습니다.답변 부탁드립니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
Scanner 닫기 sc.close();
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]Scanner사용시 항상 닫아줘야한다고 들었는데 아닌가요? 강의에서 한번도 sc.close(); 에 대한 설명이 없어서 문의드립니다.
-
해결됨오브젝트 - 기초편
6-5. 설계 평가하기 - 수업자료 클래스 오표기
안녕하세요. 강의 잘보고 있습니다.6-5. 설계 평가하기 수업자료에 오표기가 있어 제보 드립니다.- 영상시간: 10:55~11:06- 수업자료: 35p- 변경할 내용:AS-IS: NoneDiscountPolicyTO-BE: NoneDiscountMovie
-
미해결Readable Code: 읽기 좋은 코드를 작성하는 사고법
중복된 메서드 줄이는 방법
안녕하세요 선생님 강의 잘 들었습니다!강의를 통해 배운 내용을 개인 프로젝트에 적용 하던 중 궁금한점이 생겨 질문 드립니다.private List<Long> getEventIdList(List<EventSimpleInfo> events) { return events.stream() .map(EventSimpleInfo::getId) .toList(); } private List<Long> getEventIds(List<BookmarkedEventSimpleInfoQuery> events) { return events.stream() .map(BookmarkedEventSimpleInfoQuery::getId) .toList(); } Dto 조회한 두개의 List 입니다.두 List에서 id 값을 뽑는 같은 행위를 하고 있는데 어떻게 하면 중복을 줄일수 있을지 모르겠습니다.Dto에 일급 컬렉션을 적용하자니 너무 클래스가 많아 질것 같고,Dto에 인터페이스를 적용 하자니 Dto에 역할을 부여 하는 것이 맞나? 라는 생각이 듭니다.다른 방법은 Dto 내부에 로직을 두는 방법도 생각해 보았는데 어떤게 좋을까요?..쿼리를 줄이기 위해 Dto 조회를 하고 부족한 상태를 조회 하여 값을 채우고 있는데 너무 중복된 행위가많아서 고민 입니다. 어떻게 해야 할까요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
IntelliJ가 보이지 않습니다.
자료다운을 받았으나, 압축파일 내 IntelliJ가 보이지 않습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
증감연산자 질문입니다...!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]스스로 생각해본건데int a = 10; int b = a++ + ++a;이 코드에서 흐름은b +=10a = 11a=12b+=12이렇게 되는건가요...?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
하드웨어 스레드와 소프트웨어 스레드의 차이가 헷갈립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 검색해도 안보이네요3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]섹션2. 프로세스와 스레드 소개를 들은 후에, CPU 스펙에서 말하는 쓰레드와 강의에서 말하는 스레드(아마 소프트웨어 쓰레드)는 서로 다른건가? 에서 궁금증이 시작되었습니다. 예를 들어 최근 인기있는 게이밍 CPU의 경우 8코어 16스레드의 스펙을 가지고 있습니다.강의에선 16개보다 많은 갯수의 스레드가 나와서 혼동이 왔습니다. 이래저래 AI질문과 구글링을 통해 알아본 결과 소프트웨어 스레드(강의에서 말하는 스레드)를 프로그램등에서 생성하고 분배하면 이 분배된 스레드를 CPU스레드(하드웨어 스레드)에서 처리하는 느낌으로 이해되는데 맞게 이해한건지 궁금하여 질문드립니다
-
미해결김영한의 실전 자바 - 기본편
Class 변수선언 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]첫번째 질문!2번 네모박스와 3번 네모박스에서 궁금한 점인데2번은 Student student1; student1 = new Student(); 이고3번은 Student student2 = new Student(); 이렇게 한번만 코드를 작성하셨는데 2번 박스의 Student student1는 한번만 선언해주면 되는건가요..? 두번째 질문!1번 네모박스즉 student라는 클래스를 만들고 student클래스를 사용하기 위해서는 같은 Class1 폴더 안에 있어야만 하나요?약간 html에서 css 불러올때 처럼 한 폴더에 있어야하는 그런건가요? 입문자수준이라서 질문이 이상하다면 수정하겠습니다ㅜㅜ, 감사합니다.
-
해결됨김영한의 실전 자바 - 중급 2편
연결리스트 삭제 중 시간 복잡도 계산
public E remove(int index) { Node<E> removeNode = getNode(index); E removedItem = removeNode.item; if (index == 0) { head = removeNode.next; } else { Node<E> prev = getNode(index - 1); prev.next = removeNode.next; } removeNode.item = null; removeNode.next = null; size--; return removedItem; } private Node<E> getNode(int index) { Node<E> curr = head; for (int i = 0; i < index; i++) { curr = curr.next; } return curr; }MyLinkedList 클래스에 정의된 메서드 중 일부입니다. 링크드리스트의 경우 맨 앞 노드를 삭제하는 경우 참조의 조정만으로 삭제할 수 있어 O(1)이 소요된다고 배웠습니다. 연결리스트 내부의 필드로 가지고 있는 first를 활용해 바로 참조하지 않고 getNode()를 사용하면 메서드가 갖는 시간 복잡도를 따르지 않나요? getNode()는 평균적으로 O(n)이 걸리는 메서드라 생각해서 이 메서드가 사용되는 remove()의 경우 마찬가지로 O(n)인지, 어차피 getNode()를 사용해도 인덱스 1이니 O(1)로 간주하는지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
final참조변수
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]final 참조변수 질문드립니다.참조변수 하나에는 참조값이 하나가 할당되는것은 final을 붙이지 않아도 해당되는 개념으로 알고 있습니다.Data data = new Data();Data data= new Data();이렇게 같은 참조변수로 두개의 객체를 만드는건 원래 안되는건데 참조값 변경을 할 수 없다는게 무슨 말인가요 Data 클래스로 만들수 있는 객체가 최대 하나가 된다 이런 의미인건가요final Data data = new Data();이렇게 final을 쓰게 되면 Data data1= new Data(); 이라는 또 다른 객체를 만들지 못한다는 의미인가요
-
미해결스프링 핵심 원리 - 기본편
프로젝트 실행이 안됩니다.
[질문 내용]zip파일 구글 드라이브입니다. https://drive.google.com/file/d/1ZleZzt2LirbgIQYJbj7zs7zmLnee7HFa/view?usp=sharing 강의 잘 듣고 있습니다. 본론부터 말씀드리자면 마지막 강의에서 애플리케이션 실행해서 localhost:8080/log-bemo 에 접속하는 부분부터 안됩니다.현재 압축 파일에서 풀고 실행하면 NoUniqueBeanDefinitionException으로 스프링 작동 자체가 안되는데 MemoryMemberRepository에 @Primary를 붙이면 일단 실행은 됩니다. 강의에서는 MemoryMemberRepository에 @Primary를 붙인 기억이 없어 일단 지우고 압축했습니다.실행이 되어도 /log-demo 로 들어가면16:58:17.197 [http-nio-8080-exec-2] DEBUG o.s.web.servlet.DispatcherServlet --Exiting from "ERROR" dispatch, status 40416:58:27.583 [http-nio-8080-exec-3] DEBUG o.s.web.servlet.DispatcherServlet --GET "/log-demo", parameters={}16:58:27.584 [http-nio-8080-exec-3] DEBUG o.s.w.s.h.SimpleUrlHandlerMapping --Mapped to ResourceHttpRequestHandler [classpath [META-INF/resources/], classpath [resources/], classpath [static/], classpath [public/], ServletContext [/]]16:58:27.587 [http-nio-8080-exec-3] DEBUG o.s.w.s.r.ResourceHttpRequestHandler --Resource not found16:58:27.587 [http-nio-8080-exec-3] DEBUG o.s.w.s.m.s.DefaultHandlerExceptionResolver --Resolved [org.springframework.web.servlet.resource.NoResourceFoundException: No static resource log-demo.]16:58:27.587 [http-nio-8080-exec-3] DEBUG o.s.web.servlet.DispatcherServlet --Completed 404 NOT_FOUND16:58:27.587 [http-nio-8080-exec-3] DEBUG o.s.web.servlet.DispatcherServlet --"ERROR" dispatch for GET "/error", parameters={}16:58:27.588 [http-nio-8080-exec-3] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping --Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#errorHtml(HttpServletRequest, HttpServletResponse)16:58:27.590 [http-nio-8080-exec-3] DEBUG o.s.w.s.v.ContentNegotiatingViewResolver --Selected 'text/html' given [text/html, text/html;q=0.8]16:58:27.591 [http-nio-8080-exec-3] DEBUG o.s.web.servlet.DispatcherServlet --Exiting from "ERROR" dispatch, status 404 이런 오류가 뜨는데 왜 이렇게 되는지 이해가 잘 안됩니다..
-
해결됨스프링 핵심 원리 - 기본편
'의존'이란 개념을 어디까지 고려해야하는지 궁금합니다.
[질문 내용]안녕하세요스프링 핵심 원리 이해1 - 예제 만들기, 스프링 핵심 원리 이해2-객체 지향 원리 적용 까지 강의를 수강하고 궁금한 것이 생겨서 질문 드립니다.DIP를 지키기 위해 DI 컨테이너를 활용하여, 구현체가 추상화 인터페이스에 의존하여 결합도를 낮춘다고 이해하였습니다. 덕분에 설계할 때 객체를 유연하고 확장가능하게 만들 수 있다는 사실도 알게되었습니다. 여기에서, 궁금한 점은 첫째로, Grade와 Member와 같은 데이터를 담기 위한 객체들의 의존성은 따로 신경써도 되지 않는지 궁금합니다. 특시 Memeber는 OrderServiceImpl, MemeberServiceImpl, MemeoryMemberRepository에서 모두 사용이 되는데, 결국 저 3개의 구현체들은 Memeber를 의존한다고 볼 수 있으니, 이에 따른 side effect는 걱정하지 않아도 되는지, 만약 그렇다면 왜 그런지 궁금합니다.public enum Grade { Basic, VIP } public class Member { private Long id; private String name; private Grade grade; public Member(long id, String name, Grade grade) { this.id = id; this.name = name; this.grade = grade; } public Long getId() { return id; } public String getName() { return name; } public Grade getGrade() { return grade; } public void setId(Long id) { this.id = id; } public void setName(String name) { this.name = name; } public void setGrade(Grade grade) { this.grade = grade; } } 둘째로, 명칭에 관해서도 확실히 하고 싶은게, Grade와 Member는 해당 프로젝트에서 마치 타입과 같은 역할을 하니, 이를 '타입 의존성'이 불러도 되는지 궁금합니다. 감사합니다.
-
해결됨[2025] 자바 입문 부트캠프 JAVA DEEP DIVE [PART2/2 심화편]
스프링과정 질문
현재 강의 잘듣고있는 수강생입니다. 궁금한게있어서요 향후 스프링 부트 포토폴리오 과정에서 소셜로그인 oath2.0인가??? 구글이나 카카오톡계정을 연동해서 로그인하는 구현기능 내용도 포함되어있는지 궁금합니다. 그리고 현재 수강신청한거 수강률 50% 넘겼어요~~~ 오라클과 자바 강의 수강 기간 연장 신청합니다.
-
미해결스프링 핵심 원리 - 기본편
@Autowired 필드 명 매칭
@Autowired 가 타입 매칭을 시도하고, 여러 빈이 있으면 필드 이름, 파라미터 이름으로 빈 이름을 추가 매칭한다는 내용을 보고, 필드명을 빈 이름으로 변경해보았습니다.생성자는 롬복의 RequiredArgsConstructor를 통해서 자동으로 생성되도록 하였는데 이 때문인지 AutoAppConfigTest 에서 다음과 같은 오류 문구가 발생하면서 테스트에 실패했습니다.org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\Work_KJ\Java_Projects\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy OrderServiceImpl의 코드는 다음과 같습니다.package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @Component @RequiredArgsConstructor public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy rateDiscountPolicy; @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = rateDiscountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } // 테스트용 public MemberRepository getMemberRepository() { return memberRepository; } } 롬복을 통해서 생성자를 자동 생성하게 되면 @Autowired의 필드 매칭이 정상적으로 이루어지지 않는건가요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
sleep(10)을 넣은 이유가 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 중 sleep(10) 코드를 넣고, 계산 속도가 너무 빨라서 , 다른 스레드와 동시 실행을 위해 잠깐 쉬었다가 실행을 한거라는데 이게 이해가 잘 안됩니다 제 생각엔 빨리 실행되어야 여러 스레드들이 동시에 공유변수 value에 접근해서 동시 실행될때가 많을 것 같은데, 왜 잠깐 쉬었다가 실행해야 더 충돌 횟수가 많아져서 result가 낮은 값이 나오는지 모르겠습니다. sleep(10)을 하면 실행 속도가 느려져서 오히려 경쟁 상태가 완화되어야하는거 아닌가요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
BoundedQueueV3에서 notify()에 대한 궁금증
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다수의 생산자와 소비자 스레드를 실행하는 환경에서 소비자 스레드와 생산자 스레드가 waiting이 되어 있는 경우,한 생산자 스레드가 lock을 얻어 notify()를 실행하는 경우, WAITING이던 스레드가 BLOCKED가 되는데소비자 스레드가 lock을 얻어 데이터를 사용한다는 보장이 되는 걸까요? 다른 생산자 스레드가 lock을 얻고 버퍼에 데이터를 가득채우는 경우도 발생할 수 있을 것 같아 궁금합니다!결론적으로, 소비자는 생산자를 깨우고, 생산자는 소비자를 깨워야만 하는데 이를 notify()로 보장해줄 수 있는 지 궁금합니다!
-
미해결스프링 핵심 원리 - 기본편
bean 등록과정
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 1. 스프링 컨테이너 생성 시 AppConfig파일 기준으로 컨테이너가 생성2. 컨테이너가 AppConfig파일에 있는 @Bean을 호출해서 Bean저장소에 등록3. BeanDefinition을 확인하고 빈 생성이게 맞을까요?컨테이너에 저장하는 것과 빈을 생성하는 것이 다른것인지 아니면 같은 개념인지 구분이 잘 가지 않아서요...
-
미해결김영한의 실전 자바 - 중급 1편
자바 중급 1편 String클래스 문제와 풀이 1, 5번문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]자바 중급 1편 String클래스 문제와 풀이 1에 5번째 indexOf와 substring을 조합해서 hello.txt 의 파일 명과 확장자 부분을 분리하는 문제입니다. package lang.string.test; public class TestString5 { public static void main(String[] args) { String str = "hello.txt"; String ext = ".txt"; int index = str.indexOf(ext); String fileName = str.substring(0, 5); System.out.println("fileName = " + fileName); System.out.println("extName = " + ext); } }제 코드package lang.string.test; public class TestString5 { public static void main(String[] args) { String str = "hello.txt"; String ext = ".txt"; int extIndex = str.indexOf(ext); String filename = str.substring(0, extIndex); String extName = str.substring(extIndex); System.out.println("filename = " + filename); System.out.println("extName = " + extName); } }정답 코드위 코드가 제가 작성한거고 아래 코드가 pdf교재의 정답입니다. 선생님과 코드는 다르지만 같은 결과가 나왔습니다. 제가 궁금한 건 선생님처럼 코드 작성을 하면 더 좋은 부분이 있나요? 혹은 제가 작성한 코드가 결과는 같지만 어떠한 문제가 있는 게 아닐까 싶어서 질문 남겨봅니다. 단순한 호기심입니다!
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
2차원 배열-리팩토링2 강의중에 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용] 8분47초 강의 중에 구조 개선- 값 입력 강의하시는중에 배열 선언을 최적화 하기위해서 이중for문 이용해서 변수i선언해서 푸는법 알려주셨는데요! 혹시 밑에있는 이중 for문에 arr[row][column] =i++; 추가해서 컴파일하면 값은 똑같이 나오는데 이렇게 코딩하는것이 더 효율적인거 아닌가해서 문의드립니다! package array; public class ArrayDi2 { public static void main(String[] args) { int[][] arr = new int[2][3]; //row 는 행,열은 coulmn int i=1; for (int row = 0; row < arr.length; row++) { for (int column = 0; column < arr[row].length; column++) { arr[row][column]= i++; System.out.print(arr[row][column] + " "); } System.out.println(); } } } 이 코드요!
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
SeesionV6 코드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 네트워크 프로그램6 - 자원 정리 를 복습하다가. 질문을 드립니다.어제 네트워크 네트워크 프로그램 들을 복습하면서 혼자 만들어 보면서 따라하다가 어찌하다 보니 사진 처럼 SessionV4 필드에 private DataInputStream input;private DataOutputStream output;run()에서 객체를 생성하게 되었습니다. 그래서 이것을 코드들에 적용 시켜보자 하다가 이 코드가 나왔습니다.그래서 질문은 이렇게 코드를 SessionV6에서 짜도 되는 지가 질문입니다. 아니면 영한님 처럼 생성자 에서 전부다 생성하고 초기화 하는게 맞는지 알고 싶습니다.답변 부탁드립니다.