중화사전망 - 서예자전 - Jeecg 디지털 사전

Jeecg 디지털 사전

JeecgBoot 는 코드 생성기를 기반으로 하는 저코드 개발 플랫폼입니다! 전면 및 후면 분리 아키텍처 SpringBoot2.x, SpringCloud, 개미 디자인&; Vue, Mybatis-plus, Shiro, JWT, 마이크로서비스 지원. 강력한 코드 생성기를 통해 한 번의 클릭으로 프런트엔드 및 백엔드 코드를 생성하여 낮은 코드 개발을 실현할 수 있습니다!

JeecgBoot 는 온라인 양식 개발, 온라인 보고서, 보고서 구성 기능, 온라인 차트 디자인, 대형 화면 디자인, 모바일 구성 기능, 양식 디자이너, 온라인 디자인 프로세스, 프로세스 자동화 구성, 플러그인 기능 (플러그 가능) 등 진정한 제로 코드 온라인 개발을 위한 다양한 로우 코드 모듈을 제공합니다!

JEECG 의 목적은 OnlineCoding 구성을 통해 간단한 기능을 구현하고 제로 코드 개발을 달성하는 것입니다. 복잡한 기능은 코드 생성기에 의해 생성 및 수동으로 통합되어 지능성과 유연성을 보장하는 낮은 코드 개발을 가능하게 합니다. 낮은 코드 개발을 실현하면서 유연한 코딩을 지원함으로써 현재 낮은 코드 제품에 보편적으로 유연하지 않은 단점을 해결해 줍니다! (윌리엄 셰익스피어, 코드, 코드, 코드, 코드, 코드, 코드, 코드, 코드)

JEECG 업무 프로세스: 워크플로우를 사용하여 업무 로직 개발 및 작성을 위한 태스크 인터페이스를 구현하고 확장합니다. 양식은 양식 디자이너, 온라인 구성 양식 및 인코딩 양식과 같은 다양한 솔루션을 제공합니다. 동시에 프로세스와 양식의 분리 설계 (느슨하게 결합) 를 실현하여 임무 노드의 유연한 구성을 지원함으로써 회사 프로세스의 기밀성을 보장하고 개발자의 작업량을 줄일 수 있습니다.

Jeecg-Boot 저코드 개발 플랫폼은 모든 J2EE 프로젝트 개발, 특히 SAAS 프로젝트, 기업 정보 관리 시스템 (MIS), 내부 사무실 시스템 (OA), 기업 자원 계획 시스템 (ERP), 고객 관계 관리 시스템 (CRM) 등에 적용할 수 있습니다. 반지능형 수동 통합 개발 모델은 개발 효율성을 70% 이상 크게 높여 개발 비용을 크게 절감할 수 있습니다.

1, Nacos 의 서비스 등록 및 검색

2. 통합 구성 센터

3. 라우팅 게이트웨이 (3 가지 로드 모드)

분산 자세, k8s, 젠킨스

15, CAS 싱글 사인온

16, 라우팅 전류 제한

마이크로서비스 맵

그림 설명을 입력합니다

출력 결과:

먼저 첫 번째 인쇄문을 보세요. Java 에서 기호 = = 는 기본 데이터 유형과 참조 데이터 유형이 같은지 여부를 결정하는 비교 연산자입니다. 기준 데이터 유형인 경우 = = 비교 값이 같은지 여부. 참조 데이터 유형인 경우 = = 두 객체의 메모리 주소가 같은지 비교합니다. 문자열은 8 의 기본 데이터 유형에 속하지 않고 문자열 객체는 참조 데이터 유형에 속합니다. 위 코드에서 "ABC" 는 두 문자열 객체 ST 1 및 st2 에 할당됩니다. 두 객체는 모두 같은 주소를 가리키므로 첫 번째 인쇄 문에서 = = 를 비교한 결과가 참입니다.

그런 다음 두 번째 print 문 중간 번호의 비교를 살펴 보겠습니다. 우리는 equals 가 상위 클래스 객체의 메서드라는 것을 알고 있으며, String 클래스에서 이 equals 메서드를 다시 작성했습니다. JDK API 1.6 문서의 String 클래스 아래에서 equals 메소드를 찾아 클릭하여 문자열을 지정된 객체와 비교했습니다. 매개 변수가 null 이 아니고 객체와 동일한 문자 시퀀스를 나타내는 문자열 객체인 경우에만 true 를 반환합니다.

이 같은 문자 순서를 주의해서, 두 배열, 목록, 사전이 같은지 비교하면, 이 논리를 사용하여 코드 구현을 작성하는 것이다. St 1 및 st2 의 값이 모두 "ABC" 이고, 모두 동일한 객체를 가리키고, 현재 문자 시퀀스가 동일하기 때문에 두 번째 행의 인쇄 결과도 정확합니다.

위의 코드를 나타내는 메모리 다이어그램을 그려 보다 설득력 있게 보여 드리겠습니다.

기억 과정은 대략 다음과 같다.

대답은 메모리에 두 개의 오브젝트를 만드는 것입니다. 하나는 힙 메모리에 있고 다른 하나는 상수 풀에 있습니다. 힙 메모리 객체는 상수 풀 객체의 복사본입니다.

이제 메모리 맵을 직접 살펴보겠습니다.

키워드 new 를 볼 때 new 가 생성하는 객체가 힙 메모리에 저장되어 있다고 생각해야 합니다. 그런 다음 힙에 있는 객체가 상수 풀에 있는 객체의 복사본인 이유를 설명합니다. "ABC" 는 문자열에 속하고 문자열은 상수에 속하므로 상수 풀에 작성해야 하므로 작성되는 첫 번째 객체는 상수 풀의 "ABC" 입니다.

두 번째 오브젝트가 힙의 복사본인 이유는 무엇입니까? 이렇게 하려면 JDK API 1.6 에서 문자열 (String original) 구성 방법에 대한 주석을 찾아야 합니다. 새로 생성된 문자열 객체를 초기화하고 동일한 매개 변수를 사용하여 문자 시퀀스를 나타냅니다. 즉, 새로 생성된 문자열은 매개변수 문자열의 복사본입니다. 그래서 답이 나왔고, 두 개의 물체가 나왔습니다.

답: 거짓과 진실.

앞의 두 단락에서 언급한 메모리 분석의 경험과 이론으로, 나는 곧 위의 답을 얻을 수 있다. = = = ST 1 과 st2 오브젝트의 메모리 주소를 비교합니다. ST 1 힙 메모리를 가리키는 주소 때문에 st2 는 상수 풀에' ABC' 가 이미 있는 것을 볼 때 새 것을 만들지 않으므로 st2 는 상수 풀의 메모리 주소를 가리키므로 = 두 번째 equals 비교는 두 문자열 시퀀스가 같은지 여부입니다. "ABC" 가 하나뿐이므로 정확히 같습니다. 메모리 그림은 다음과 같습니다

대답은: 진실과 진실

분석:

답: 거짓과 진실.

위의 첫 번째 답은 거짓이고, 두 번째 답은 진실이고, 두 번째 답은 진실이다. 우리는 쉽게 이해할 수 있다. 왜냐하면 비교한 것은' ABC' 이고, 다른 하나는 접합하여 얻은' ABC' 이기 때문이다. 그래서 비교하면, 이것은 진짜 출력이고, 우리는 쉽게 이해할 수 있다. 그럼 왜 첫 번째 판단이 거짓일까요? 우리는 매우 곤혹스럽다. 마찬가지로 API 주석과 메모리 맵을 사용하여 왜 이것이 동일하지 않은지 설명하겠습니다.

먼저 JDK API 1.6 에서 문자열 소개를 열고 다음 그림을 찾습니다.

관건은 빨간 원 안에 있다. 우리는 모든 데이터와 문자열이 더하기 기호 (+) 를 통해 조작된다는 것을 알고 있으며, 최종 결과는 접합된 새 문자열입니다. 위의 주석은 StringBuilder 또는 StringBuffer 클래스와 내부 append 메서드를 호출하여 모자이크를 구현한 다음 toString () 을 호출하여 패치된 객체를 String 객체로 변환한 다음 마지막으로 string 객체의 주소를 변수에 할당하는 원리를 설명합니다. 이러한 이해로, 분석을 위해 메모리 맵을 그려 봅시다.

대략적인 기억 과정

따라서 st3 과 st2 의 = = 판단은 두 개체의 메모리 주소가 다르기 때문에 동일하지 않습니다.

이 면접 문제는 정확한 결과를 얻기 위해 JDK API 의 주석과 원리, 메모리 맵 분석을 완전히 파악해야 한다. 나는 기억도를 그려서 왜 답이 이렇는지 이해하게 했다는 것을 인정한다. 기억도를 그려서 답을 얻으면 정말 재미있을 거야. 결국 이런 감탄을 하게 될 거야. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 기억명언)