SEARCH KEYWORD -- POINTER



  Will nil == nil be true in GoLang

There is some interview question may ask whether nil == nil be true in GoLang. Wil it be true. false or compilation error? To know the answer, some knowledge about nil in GoLang needs to be explained first. nil definition According to Go's official documentation, the definition of nil is // nil is a predeclared identifier representing the zero value for a // pointer, channel, func, interface, map, or slice type. var nil Type // Type must be a pointer, channel, func, interface, map, or slice type...

   GOLANG,NIL,NIL EXPLANATION     2021-08-08 02:54:15

  GoLang Interview Questions

Below lists some frequently asked GoLang interview questions and their corresponding answers based on the author's experience. The list is updated frequently with new understandings. Stay tuned. What is the GMP model of GoLang? GoLang uses goroutine to achieve concurrency and it is famous for high concurrency support as the language defines its own goroutine dispatching and processing system which is well known as GMP model. How it works is that M is normally defined as the OS thread being spawn...

   MEMORY,CONCURRENCY,INTERVIEW QUESTION,GOLANG     2024-05-25 03:08:18

  The internals of slice in GoLang

There are 3 components of slice:a) Pointer: Points to the start position of slice in the underlying array;b) length (type is int): the number of the valid elements of the slice;b) capacity (type is int): the total number of slots of the slice. Check the following code: package main import ( "fmt" "unsafe" ) func main() { var s1 []int fmt.Println(unsafe.Sizeof(s1)) } The result is 24 on my 64-bit system (The pointer and int both occupy 8 bytes). In the next example, I will use gdb to poke t...

   GOLANG,SLICE     2019-06-30 02:55:22

  When and Where to Use Pointers in Go

When declaring variables in Go, we usually have two syntax options: In some scenarios, pointers; in others, reference; sometimes, either. It’s great to have choices, but it is also confusing sometimes as to which one in which scenario. To be more reasonable in choice-making, I started from pointers, walked through their natures, and summarized some rules in using them in Go. from unsplash, Jordan Ladikos Pointers Go has pointers. A pointer holds the memory address of a ...

   POINTER,GOLANG     2022-05-01 02:24:43

  Can two new objects point to the same memory address in GoLang?

Do you have any idea what the output will be for below GoLang snippet? package main import ( "fmt" ) type obj struct{} func main() { a := &obj{} fmt.Printf("%p\n", a) c := &obj{} fmt.Printf("%p\n", c) fmt.Println(a == c) } Many people would think that a and c are two different object instances which have different memory addresses. Hence a == c will be false. But if you try to run the above program, you would see below output 0x5781c8 0x5781c8 true To get to know the reason wh...

   GO,GOLANG,VARIABLE ESCAPE,ZEROBASE     2019-04-06 01:19:52

  Check mobile device using JavaScript

Sometimes developers want to know whether the user is using a mobile browser or a desktop browser so that they can build corresponding user experience. Although in many cases responsive web design would help solve component alignment issues, there are performance related considerations in some cases where some code should not be ran or some feature should not be available if user is on mobile browser. or vice versa This post will summarize a few ways which are commonly used to check whether a us...

   CHECK,MOBILE BROWSER,MOBILE DEVICE,JAVASCRIPT     2021-10-02 01:36:16

  The latest on Java-on-Java: the Oracle experiment that is gaining momentum

What is Project Metropolis? The not so hush-hush Project Metropolis is all set to implement Java on itself – popularly known in the developer community as Java-on-Java. Oracle has released updates on its progress, and they are very encouraging. The project will focus on building a JIT (just in time) compiler that is written in Java. It is being touted as the experimental clone of JDK (Java Development Kit) 10.  Work on ‘ahead of time’ compiling and Graal compiler is also i...

   HIRE JAVA DEVELOPERS     2017-05-22 08:49:32

  GCC is compiled with C++ compiler

On 15 Aug, 2012, GCC merged a patch--Merge from cxx-conversion branch . This means GCC will be compiled with C++ compiler in the future, it also means that GCC will be implemented using C++. You may have following two puzzles: Why does GCC turn to C++? Without C++ compiler, how can we compile C++ codes? Why using C++? In GNU's C++ Conversion, we can find this description in the background section: Whether we use C or C++, we need to try to ensure that interfaces are easy to understan...

   GCC,C++,Compiler     2012-09-04 02:36:06

  NIO vs IO in Java

Java 1.4 provides a new API for handling IO -- NIO. This is a non-blocking and buffer oriented IO API. Below are main differences between the NIO and IO in Java. IO NIO Stream oriented Buffer oriented Blocking IO Non-blocking IO N/A Using selector Stream oriented vs Buffer oriented The main difference is that IO is stream oriented where the data is read byte by byte and the data will not be buffered normally.This means there is no pointer to move forward and backward in the stream. I...

   JAVA,IO,NIO     2016-01-10 01:40:02

  How to undo git changes?

When using git for version control, there is frequent need on undoing commits due to some unexpected changes. This post will introduce how to undo changes with git command in different cases. Undo commit A common undo case is that some commit needs to be reverted as the commit contains error. In this case, the code is already committed. The command to revert the commit is git revert HEAD This command will add new a commit to the existing head to undo the previous commit. It will not change the p...

   GIT,GIT RESET,GIT REVERT,GIT CHECKOUT     2019-12-28 02:21:47