Improving rendering performance of 2D Tile Game
I'm not sure if these would be optimized out by the compiler but

Tile.TILESIZE * SCALE
Tile.TILESIZE * Game.SCALE


are done more than once, why not just keep them as variables and...

for (int y = startY; y &lt; finishY; y++) {
 for (int x = startX; x &lt; finishX; x++) {
   map.tile.get((y*map.getMapWidth())+x).render(g);


...why do a multiplication for every y? you could just have a variable and increment it

int yLoc = startY * map.getWidth();
for (int y = startY; y &lt; finishY; y++) {
 for (int x = startX; x &lt; finishX; x++) {
   map.tile.get(yLoc+x).render(g);
 }
 yLoc += map.getMapWidth();
}


then you only need to do one multiplication and one addition for each y step instead of a multiplication for every y