Introduction to PrimitivesOverviewPrimitivesintbyte and shortlongdoublefloatAn aside: approximationsGiving names to numbersVariablesDeclaring variablesGiving values to variablesInitializing variablesArithmeticOrder of precedenceParenthesesAssignment statementsPrinting out results, part 1Printing out results, part 2A BASIC programA Java programWhy is Java so hard?New vocabularyMore new vocabularyThe EndJan 14, 2019Introduction to Primitives2OverviewToday we will discuss:The eight primitive types,especially int and doubleDeclaring the types of variablesOperations on primitivesThe assignment statementHow to print results3PrimitivesPrimitives are the “basic” data valuesThere are eight types of primitives:boolean -- used for true and false valueschar -- used for single characters (letters, etc.)byte, short, int, long -- four different kinds of integer (whole number) valuesfloat, double -- two different kinds of decimal numbers (numbers with a decimal point)4intThe most important integer type is intAn int is a “whole” number (no decimal point)Numbers occupy memory in the computerLarger numeric types require more memory byte: 1 byte short: 2 bytes int: 4 bytes long: 8 bytesAn int can be between about two billion (two thousand million) and negative two billionIf you just write a number, such as 25, Java assumes it is an intHence it is easier to work with int values than with the other integer types (byte, short, and long)Use int in preference to other integer types5byte and shortA byte can be between -128 and 127A short can be -32768 to 32767Why these numbers?These are “round numbers” in binary; for example, 0111 1111 1111 1111 is binary for 32767 1000 0000 0000 0000 is binary for -32768 The first bit is the sign bit: a 1 means it’s a negative numberUse byte or short only whenYou know the numbers are all smallThere are millions of numbers to rememberExtra syntax is needed (will be discussed later)6longlong integers are for when two billion isn’t large enough for your needsA long can be as long as about 19 digitsA long occupies twice as much space as an intArithmetic on long values is slowerUse long only when you need really big numbersExtra syntax is needed (will be discussed later)Even larger numbers are available in Java--but they are objects, not primitives7doubleA double represents a “real” numberAlso sometimes called “floating point”These are numbers with a decimal pointA double has about 15 digits of accuracyIf you just write a real number, such as 1.37, Java assumes it is a doubleHence it is easier to work with double values than with float valuesUse double in preference to float8floatfloat is the other kind of “real,” or “floating point” numberfloat has about 8 digits of accuracyArithmetic with float is not fasterUse float only to save space when there are millions of numbers involved Extra syntax is needed (will be discussed later)9An aside: approximationsIntegers are precise, but real numbers are always approximate (inaccurate)Computers always use the binary system internallyMany numbers that can be expressed precisely in decimal cannot be represented precisely in binaryFor example, the numbers 1.1, 1.2, 1.3, and 1.4 can only be approximated in binaryTwo numbers that look the same may actually be subtly differentNever test floating point numbers for equality!Only test for larger or smaller, or for “not larger” or “not smaller”This is not a Java rule—it’s a programming rule10Giving names to numbersSometimes you know what a number isYou have 10 fingersThere are 24 hours in a dayπ is 3.141592653589793238Numbers written like this are called literalsYou can use literals any place in Java that you can use a numberSometimes you need to use names instead:classSize, myBankBalance, myAge, speedometerReadingNames like this are called variablesThe value of a variable may changeSometimes names are simply more convenient, for example,Math.PI instead of 3.14159265358979323811VariablesBefore you use a variable, you must declare it (tell Java what type it is: int, double, char, ...) There are two reasons for this:Different types require different amounts of spaceSo Java can prevent you from doing something meaningless (adding 5 to someone’s name, or multiplying two dates together)Before you use a variable, you must also define it (tell Java what value it has)It makes no sense to print out your bankBalance, or to add 100.00 to your bankBalance, if you don’t have a meaningful, well-defined initial value for bankBalance to start withYou might assign an initial value to your variable, or compute a value, or read a value in; but you have to get one somehow12Declaring variablesYou declare variables like this: int classSize; double myBankBalance;When you declare a variable to be a primitive type, Java automatically finds space for itThe amount of space Java needs to find depends on the type of the variableThink of a variable as a specially shaped “box,” designed to hold a value of a particular typeAn int variable is four bytes long and there’s a special place for the sign bitA float variable is also four bytes long, but the bits are used differently--some are used to tell where the decimal point goes13Giving values to variablesA variable is just a name for some valueYou have to supply the actual value somehowJava tries to prevent you from using a variable that you haven’t given a valueYou can assign values like this: classSize = 57; myBankBalance = 123.01; // no "$"!14Initializing variablesYou can give a variable an initial value when you declare it: int classSize = 30; double myBankBalance = 0.0;You can change the value of a variable many times: classSize = 57; myBankBalance = myBankBalance + 50.00;15ArithmeticPrimitives have operations defined for themint and double have many defined operations, including+ for addition- for subtraction* for multiplication (Old computers did not have thecharacter)/ for division16Order of precedenceOperations with higher precedence are done before operations with lower precedenceMultiplication and division have higher precedence than addition and subtraction: 2 + 3 * 4 is 14, not 20Operations of equal precedence
View Full Document