The Highwater mark

For each object, Oracle maintains a record of the highest relative block of the table used to hold data. It is maintained in multiples of 5 blocks and is not reset unless the TRUNCATE command is executed.
When Oracle performs a full table scan it reads all blocks up to and including the highwater mark. If data is deleted the highwater mark will stay where it is and so the blocks are still read.
An even worse scenario is possible. If a table contains 50,000 rows, and the first 49,000 rows are then deleted. The blocks corresponding to the deleted data are placed at the end of the free block list. When the next INSERT statement is executed, Oracle finds the first block on the free block list, which is beyond the highwater mark. The effect is that all the free space (49,000 rows worth) is ignored, and the table becomes bigger.
If you use SQL*Loader with the direct path option, these loads always begin at the highwater mark.

To determine the highwater mark:

highwater mark = total blocks - empty blocks - 1

Total blocks and empty blocks for a table can be obtained from:
SELECT blocks, empty_blocks
FROM dba_segments
WHERE segment_name = 'Tablename';