Heat wave to last through Fourth of July