q2K BHP
Black History Portal
THE BHP WIRE —
HIDDEN TRUTHS
What's New!
THE JOURNEY THROUGH TIME

Explore Black History

Explore the people, places, events, achievements, struggles and stories that shaped our journey.

✊🏾

Civil Rights

Movements, leaders, victories and the continuing fight for equality.

⚙️

Black Inventors

Innovation, patents, science, technology and world-changing contributions.

🏆

Sports

Pioneers, champions, Negro Leagues, records, activism and excellence.

♟️

People

Meet the people whose lives, choices and achievements shaped the journey.

📍

Places

Black towns, communities, institutions and places where history happened.

📜

Events

Moments that changed communities, movements, institutions and the nation.

Enter a person, place, event, or topic.
MY'STORY

The MOVE Fire

This is a personal recollection on the Move fire on May 13, 1985 Philadelphia police fired thousands of rounds at the MOVE house, city officials approved dropping an explosive device on the roof, the resulting fire was allowed to burn, 11 people—including five children—died, and 61 homes were destroyed. Philadelphia City Council later called it a “brutal attack carried out by the City of Philadelphia on its own citizens” and acknowledged that no individual faced criminal consequences for the bombing. One timeline correction worth preserving for the BHP record: the major previous MOVE-police confrontation was August 8, 1978, about seven years before the bombing, not a year or two earlier. Officer James Ramp was killed, other police and firefighters were wounded, nine MOVE members were later convicted, and television cameras recorded police beating Delbert Africa during his arrest. The 1985 MOVE Commission later specifically criticized city planners for failing to adequately use lessons from that 1978 confrontation. And that actually strengthens the point you’re making: 1985 did not happen without precedent or institutional memory. There had already been a deadly confrontation with MOVE, years of conflict, negotiations and police involvement before Osage Avenue.

MORE →
BLACK FACTS
The Truths They Never Taught You...

The Violence That Helped Spark the NAACP

In August 1908, a white mob attacked Springfield, Illinois’s Black community, destroying homes and businesses and lynching two Black men. National outrage over the violence helped spur the movement that created the NAACP the following year.

MORE →
BHP gathered finds from its connected research sources. Showing the 4 strongest Black History matches.
← BACK TO RESULTS
Wikipedia

Boxing (computer programming)

In computer science, boxing (a.k.a. wrapping) is the transformation of placing a primitive type within an object so that the value can be used as a reference. Unboxing is the reverse transformation of extracting the primitive value from its wrapper object. Autoboxing is the term for automatically applying boxing and/or unboxing transformations as needed.

Boxing

[edit]

Boxing's most prominent use is in Java where there is a distinction between reference and value types for reasons such as runtime efficiency and syntax and semantic issues. In Java, a LinkedList<T> must be such that T is an instance of Object. One might desire to have a LinkedList<int>, but this is not directly possible. Instead Java defines primitive wrapper classes corresponding to each primitive type: Integer and int, Character and char, Float and float, etc. Using generic parameterized types introduced in Java Platform, Standard Edition (J2SE) 5.0, one can then define a LinkedList<Integer> and insert int values into the list by boxing them as Integer objects.

On the other hand, C# has no primitive wrapper classes, but allows boxing of any value type, returning a generic Object reference. In Objective-C, any primitive value can be prefixed by a @ to make an NSNumber out of it (e.g. @123 or @(123)). This allows for adding them in any of the standard collections, such as an NSArray.

Haskell has little or no notion of reference type, but still uses the term "boxed" for the runtime system's uniform pointer-to-tagged union representation.[1]

The boxed object is always a copy of the value object, and is usually immutable. Unboxing the object also returns a copy of the stored value. Repeated boxing and unboxing of objects can have a severe performance impact, because boxing dynamically allocates new objects and unboxing (if the boxed value is no longer used) then makes them eligible for garbage collection. However, modern garbage collectors such as the default Java HotSpot garbage collector can more efficiently collect short-lived objects, so if the boxed objects are short-lived, the performance impact may not be severe.

In some languages, there is a direct equivalence between an unboxed primitive type and a reference to an immutable, boxed object type. In fact, it is possible to substitute all the primitive types in a program with boxed object types. Whereas assignment from one primitive to another will copy its value, assignment from one reference to a boxed object to another will copy the reference value to refer to the same object as the first reference. However, this will not cause any problems, because the objects are immutable, so there is semantically no real difference between two references to the same object or to different objects (unless you look at physical equality). For all operations other than assignment, such as arithmetic, comparison, and logical operators, one can unbox the boxed type, perform the operation, and re-box the result as needed. Thus, it is possible to not store primitive types at all.

Autoboxing

[edit]

Autoboxing is the term for getting a reference type out of a value type just through type conversion (either implicit or explicit). The compiler automatically supplies the extra source code that creates the object.

For example, in versions of Java prior to J2SE 5.0, the following code did not compile:

Integer i = new Integer(9);
Integer i = 9; // error in versions prior to 5.0!

Compilers prior to 5.0 would not accept the last line. Integer are reference objects, on the surface no different from List, Object, and so forth. To convert from an int to an Integer, one had to "manually" instantiate the Integer object. As of J2SE 5.0, the compiler will accept the last line, and automatically transform it so that an Integer object is created to store the value 9.[2] This means that, from J2SE 5.0 on, something like Integer c = a + b, where a and b are Integer themselves, will compile now — a and b are unboxed, the integer values summed up, and the result is autoboxed into a new Integer, which is finally stored inside variable c. The equality operators cannot be used this way, because the equality operators are already defined for reference types, for equality of the references; to test for equality of the value in a boxed type, one must still manually unbox them and compare the primitives, or use the Objects.equals method.

Another example: J2SE 5.0 allows the programmer to treat a collection (such as a LinkedList) as if it contained int values instead of Integer objects. This does not contradict what was said above: the collection still only contains references to dynamic objects, and it cannot list primitive types. It cannot be a LinkedList<int>, but it must be a LinkedList<Integer> instead. However, the compiler automatically transforms the code so that the list will "silently" receive objects, while the source code only mentions primitive values. For example, the programmer can now write list.add(3) and think as if the int 3 were added to the list; but, the compiler will have actually transformed the line into list.add(new Integer(3)).

Automatic unboxing

[edit]

With automatic unboxing the compiler automatically supplies the extra source code that retrieves the value out of that object, either by invoking some method on that object, or by other means.

For example, in versions of Java prior to J2SE 5.0, the following code did not compile:

Integer k = new Integer(4);
int l = k.intValue(); // always okay
int m = k;            // would have been an error, but okay now

C# doesn't support automatic unboxing in the same meaning as Java, because it doesn't have a separate set of primitive types and object types. All types that have both primitive and object version in Java, are automatically implemented by the C# compiler as either primitive (value) types or object (reference) types.

In both languages, automatic boxing does not downcast automatically, i.e. the following code won't compile:

C#:

int i = 42;
object o = i;         // box
int j = o;            // unbox (error)
Console.WriteLine(j); // unreachable line, author might have expected output "42"

Java:

int i = 42;
Object o = i;          // box
int j = o;             // unbox (error)
System.out.println(j); // unreachable line, author might have expected output "42"

Boxing in Rust

[edit]

Rust has the Box type, which represents a uniquely owned, heap-allocated value:[3]

let number: Box<i32> = Box::new(42);

std::boxed::Box in Rust is equivalent to std::unique_ptr in C++, a kind of smart pointer.

using std::unique_ptr;

unique_ptr<int> number = std::make_unique<int>(42);

If the value needs to have shared ownership (e.g. between threads), one can use Arc, which represents a reference-counted, heap-allocated value.[4][5] This is similar to std::shared_ptr in C++.

Type helpers

[edit]

Modern Object Pascal has yet another way to perform operations on simple types, close to boxing, called type helpers in Free Pascal or record helpers in Delphi and Free Pascal in Delphi mode.

The dialects mentioned are Object Pascal compile-to-native languages, and so lack some features that C# and Java can implement. Notably run-time type inference on strongly typed variables.

However, the feature is related to boxing. It allows using constructs like:

{$ifdef fpc}{$mode delphi}{$endif}
uses sysutils;  // this unit contains wraps for the simple types
var
  x:integer=100;
  s:string;
begin
  s:= x.ToString;
  writeln(s);
end.

References

[edit]
  1. ^ "7.2. Unboxed types and primitive operations". downloads.haskell.org. Retrieved 10 August 2022.
  2. ^ oracle.com Java language guide entry on autoboxing
  3. ^ "std::boxed - Rust". doc.rust-lang.org. Retrieved 2 June 2025.
  4. ^ "Arc in std::sync - Rust". doc.rust-lang.org. Retrieved 18 January 2025.
  5. ^ "Arc - Rust By Example". doc.rust-lang.org. Retrieved 18 January 2025.

Source: Wikipedia. Article content is retrieved live through the MediaWiki API.

No preview image
Wikipedia

Boxing (computer programming)

In computer science, boxing (a.k.a. wrapping) is the transformation of placing a primitive type within an object so that the value can be used as a reference. Unboxing is the reverse transformation of extracting the primitive value from its wrapper object. Autoboxing is the term for automatically applying boxing and/or unboxing transformations as needed.

MORE →
No preview image
Wikipedia

Champs Boxing

Champs Boxing was a series of boxing matches that took place in Fort Worth, Texas, during 2002 and 2003. The boxing events were created to supplement Telefutura's programming when the network moved to a 24-hour schedule. The boxing matches took place on Saturday night, and aired later in the week to round out TeleFutura's growing need for programming content. TeleFutura had large Friday Night boxing programming, but the demand was to add several smaller events throughout the week. Tommy Habeeb, Leslie Norris, and Dustin Hodge were the producers and produced the events through Tommy Habeeb Enterprises, before later moving to producing MMA events for the Art of War Undisputed Arena Fighting Championship. Kendrick Releford and America Santos were two of the more well known boxers on the events. The fights were sanctioned by the Texas Combative Sports Program.

MORE →
No preview image
Wikipedia

Mark Kriegel

Mark Kriegel is an American author, journalist, and television commentator. He has been an analyst and essayist for ESPN's boxing programming since 2017 and is regarded as "the greatest chronicler of fighting and fighters, even ahead of such lions as W.C. Heinz and William Nack and Norman Mailer" and "perhaps the finest boxing writer in America"

MORE →
Wikipedia

List of Showtime original programming

Showtime (also branded as Paramount+ with Showtime) is an American premium cable and satellite television network. Showtime's programming primarily includes theatrically released motion pictures and original television series, along with boxing and mixed martial arts matches, occasional stand-up comedy specials and made-for-TV movies.

MORE →
TOPIC OF THE DAY

Greenwood / Black Wall Street

Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.

MORE →
TRIVIA QUESTION OF THE DAY

What prosperous Tulsa district became widely known as “Black Wall Street”?

The Greenwood District.